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

用yield 实现协程 (包子模型)

时间:2018-06-10 23:02:27      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:port   print   cte   import   for   next   end   send   time   

协程是一种轻量级的线程

无需线程上下级的开销, 所有的协程都在一个线程内执行

 

import time

def consumer(name):
print(‘%s is start to eat baozi‘%name)
while True:
baozi = yield #用于传递
print(‘%s is start to eat %s baozi‘%(name, baozi))


def Producter(name):
print(‘%s is start to make baozi‘%name)

c1.__next__() #c1执行一次
c2.__next__() #c2 执行一次

for i in range(10):
time.sleep(2)
c1.send(i) #给生成器c1传递参数,生成器在yield处启动执行,在yield重新中断
c2.send(i)

if __name__ == ‘__main__‘:
    c1 = consumer(‘wang‘)  #生成c1 生成器
c2 = consumer(‘li‘) #生成c2 生成器
Producter(‘alex‘)






 

用yield 实现协程 (包子模型)

标签:port   print   cte   import   for   next   end   send   time   

原文地址:https://www.cnblogs.com/my-love-is-python/p/9164579.html

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