[其他] 初学协程

1. 什么是协程

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

2. 与一般子程序的区别

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

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

3. 与多线程相比的优势

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

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

4. 合理使用

多进程+协程

5. 参考资料:

  1. 廖雪峰的博客

你可能感兴趣的:([其他] 初学协程)