所谓协程就是在一个线程中切换子进程,相比多线程有如下好处:最大的优势就是协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。第二大优势就是不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。
python的协程通过generator支持的.
yield可以接受参数|传递参数.
send调用协程,第一次要使用send(None)启动generator.
下面使用协程实现简单的生产者-效果者模型.
def consumer():
r = ''
while True:
n = yield r
if not n:return
print('consuming the event %s'</