是一种用户态的请链接线程微线程
好处
无需线程上下文切换的开销
无需原子操作锁定及同步的开销
方便切换控制简化编程模型
高并发+高扩展性+低成本
缺点
无法利用多核的资源协程本质上就是一个单线程无需使用多核要结合多进程才能利用多核
进行阻塞操作会阻塞掉整个程序
用yield实现一个协程操作
def consumer(name): print("--->starting eating baozi...") while True: new_baozi = yield print("[%s] is eating baozi %s" % (name, new_baozi)) # time.sleep(1) def producer(): r = con.__next__() r = con2.__next__() n = 0 while n < 5: n += 1 con.send(n) con2.send(n) print("