码迷,mamicode.com
首页 > 其他好文 > 详细

用生成器做伪并发

时间:2019-11-04 15:24:43      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:output   auth   str   author   tput   ini   port   迭代   开始   

#_author:Administrator
#date:2019/11/4
import time
def 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]吃了

用生成器做伪并发

标签:output   auth   str   author   tput   ini   port   迭代   开始   

原文地址:https://www.cnblogs.com/startl/p/11791954.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!