用yield写协程实现生产者消费者
Posted cxhzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用yield写协程实现生产者消费者相关的知识,希望对你有一定的参考价值。
思路:
yield可以使得函数阻塞,next,和send可以解阻塞,实现数据不竞争的生产者消费者模式
代码:
import random #随机数,模拟生产者的制造物
def eat(): #消费者
while True:
item = (yield)
print("消费了:",item)
def pro(g): #生产者
next(g)
while True:
item = random.randint(0,99)
print("生产了:",item)
g.send(item)
#调用
g = eat() #创建生成器实例
pro(g)
图例:
以上是关于用yield写协程实现生产者消费者的主要内容,如果未能解决你的问题,请参考以下文章