#生成器模式的协程,这个生成器其实本身就是协程
def consumer():
n = 0
while True:
n = yield n #n= 1 ,yield 1 (由于没有print(send(n)),所以yield1不输出,),挂起n下次继续从这里执行
if n is not None and n > 0:
print('消費者開始消費%d'%(n))
def producer(c):
n = 1
next(c) #预激活,否则报错:首次调用生成器不能够发入非none数据
# 生产者产生5个数1到5发送给消费者。
print("生产者产生5个数1到5发送给消费者。")
while n <= 5:
print('生成者生產數字%d'%(n))
print(c.send(n))
print('生產者休息一下......')
n += 1
c.close()
if __name__ == '__main__':
c = consumer()
producer(c)