python-迭代器实现异步(在串行中)

import time
def consumer(name):
print('%s 准备吃包子啦!' %name)
while True:
baozi = yield #yield不但可以返回值还可以接收值
print('包子[%s],被[%s]吃了!'%(baozi,name))

def producer(name):
c = consumer('A') #实例化对象
c2 = consumer('B')
c.__next__()   #通过next方法调用c和c2
c2.__next__()
print('老子准备开始做包子了')
for i in range(10):
time.sleep(1)
print('做了两个包子!')
c.send(i) #把循环的值,也就是做好的包子, 告诉A
c2.send(i) #把循环的值,也就是做好的包子, 告诉B

producer('goupang')
posted @ 2018-03-06 13:50  努力乄小白  阅读(201)  评论(0编辑  收藏  举报