[其他] 初学协程

1. 什么是协程

协程是协同程序(Coroutine)的简称(co前缀表示合作,routine即为程序)。具体来说就是程序A在执行时可能会转为执行程序B,甚至是其他,而每个程序之间并没有相互调用

2. 与一般子程序的区别

线程的执行,实质是一个方法/函数从入栈(方法调用)到出栈(返回值)的过程,顺序十分明确。

协程也是由单一线程执行,如第一点所说,由于并没有相互调用关系,因此理解起来更困难(通过CPU中断切换协程的上下文)。

3. 与多线程相比的优势

协程之间并没有方法调用关系,有点像多线程。而与多线程比起来,协程具备的优势:

  1. 更高的执行效率(线程的来回切换需要消耗资源,所需线程越多,协程的优势越大)
  2. 不需要多线程对共享资源的锁机制

4. 合理使用

多进程+协程

5. 参考资料:

  1. 廖雪峰的博客
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容