用生成器做伪并发

一曲冷凌霜 提交于 2019-12-03 10:52:43
#_author:Administrator#date:2019/11/4import timedef consumer(name):    print('%s 开始吃包子啦'%name)    while True:        baizi=yield        print('包子[%s]来了,被[%s]吃了'%(baizi,name))def producer(name):    c1=consumer('A')    c2=consumer('B')    next(c1)    next(c2)    print('yuwei开始做包子啦')    for i in range(10):        time.sleep(1)        print('做了两个包子')        c1.send(i)        c2.send(i)producer('yuwei')#生成器都是迭代器,迭代器不一定是生成器Output:

A 开始吃包子啦
B 开始吃包子啦
yuwei开始做包子啦
做了两个包子
包子[0]来了,被[A]吃了
包子[0]来了,被[B]吃了
做了两个包子
包子[1]来了,被[A]吃了
包子[1]来了,被[B]吃了
做了两个包子
包子[2]来了,被[A]吃了
包子[2]来了,被[B]吃了
做了两个包子
包子[3]来了,被[A]吃了
包子[3]来了,被[B]吃了
做了两个包子
包子[4]来了,被[A]吃了
包子[4]来了,被[B]吃了
做了两个包子
包子[5]来了,被[A]吃了
包子[5]来了,被[B]吃了
做了两个包子
包子[6]来了,被[A]吃了
包子[6]来了,被[B]吃了
做了两个包子
包子[7]来了,被[A]吃了
包子[7]来了,被[B]吃了
做了两个包子
包子[8]来了,被[A]吃了
包子[8]来了,被[B]吃了
做了两个包子
包子[9]来了,被[A]吃了
包子[9]来了,被[B]吃了

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!