码迷,mamicode.com
首页 > 编程语言 > 详细

初识python: 生成器并行(做包子,吃包子)

时间:2018-10-20 14:50:53      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:解析   分享   span   import   com   单线程   pre   调用函数   def   

知识点:

send(i) :唤醒yield,并将 i 的值传给 yield

#!/user/bin env python
# author:Simple-Sir
# time:20181020
# 单线程并发:做一个包子,两个人吃
import time
# 吃包子生成器
def chibaozi(name):
    print(%s想吃包子了! %name)
    while True:
        baozi = yield
        print(第%s个包子来了,被%s吃了一半!%(baozi,name))

# 逻辑解析
# c = chibaozi(‘SimpleGirl‘)
# c.__next__()  # 唤醒yield
# b1=‘牛肉包子‘
# c.send(b1)  # 注:唤醒yield,并将b1的值传给 yield

# 做包子生成器
def zuobaozi(name):
    c1 = chibaozi(SimpleSir)
    c2 = chibaozi(SimpleGirl)
    c1.__next__()
    c2.__next__()
    print(%s开始做包子了!%name)
    for i in range(1,6):
        time.sleep(1)
        print(%s做了1个包子!%name)
        c1.send(i)
        c2.send(i)

# 调用函数
zuobaozi(SimpleSir)

 

执行结果:

技术分享图片

 

初识python: 生成器并行(做包子,吃包子)

标签:解析   分享   span   import   com   单线程   pre   调用函数   def   

原文地址:https://www.cnblogs.com/simple-li/p/9821453.html

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