1. 什么是协程
协程是协同程序(Coroutine)的简称(co前缀表示合作,routine即为程序)。具体来说就是程序A在执行时可能会转为执行程序B,甚至是其他,而每个程序之间并没有相互调用。
2. 与一般子程序的区别
线程的执行,实质是一个方法/函数从入栈(方法调用)到出栈(返回值)的过程,顺序十分明确。
协程也是由单一线程执行,如第一点所说,由于并没有相互调用关系,因此理解起来更困难(通过CPU中断切换协程的上下文)。
3. 与多线程相比的优势
协程之间并没有方法调用关系,有点像多线程。而与多线程比起来,协程具备的优势:
- 更高的执行效率(线程的来回切换需要消耗资源,所需线程越多,协程的优势越大)
- 不需要多线程对共享资源的锁机制
4. 合理使用
多进程+协程
网友评论