思想:消费者负责消费,生产者负责生产,消费者消费的同时生产者要把生产好的产品送到消费者地点去,保证消费者有产品。
如下:
import time def consumer(name): print("%s准备吃棉花糖了"%name) while True: cottoncandy=yield print("棉花糖%s,被%s吃了"%(cottoncandy,name)) c=consumer("hy") c.__next__() b="cantaloupe" c.send(b)
最后一句c.send(b)就是把b送到了消费者处。但是如果用一连串的send(),则会降低程序效率。所以用下面方法:
import time def consumer(name): print("%s准备吃棉花糖了"%name) while True: cottoncandy=yield print("棉花糖%s,被%s吃了"%(cottoncandy,name)) def producer(name): c1=consumer("W") c2=consumer("H") c1.__next__() c2.__next__() print("李师傅开始做棉花糖了") for i in range(10): time.sleep(1) print("做了两个棉花糖,分为两半") c1.send(i) c2.send(i) producer("李师傅")注意:send()与__next__()区别:__next__()只调用yield,但是send()在调用yield的同时会给yield传值。