初识python: 生成器并行(做包子,吃包子)
Posted Simple-Sir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识python: 生成器并行(做包子,吃包子)相关的知识,希望对你有一定的参考价值。
知识点:
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: 生成器并行(做包子,吃包子)的主要内容,如果未能解决你的问题,请参考以下文章