python3--生成器并行运算
2024-10-15 23:56:00
# Auther: Aaron Fan """
def consumer(name):
print("%s 准备吃包子啦!" % name)
while True:
baozi = yield
print("包子[%s]来了,被[%s]吃了!" % (baozi, name)) people = consumer("FanHeng")
people.__next__() stuffing = "胡萝卜陷"
people.send(stuffing) #把stuffing的值传给生成器consumer中的yield,并调用yield people.__next__() # 单纯的调用next不会给yield传值,仅仅是调用yield。所以程序显示的是:
# 包子[None]来了,被[FanHeng]吃了! stuffing = ["韭菜馅", "牛肉馅", "黄金菜团"]
for i in stuffing:
people.send(i)
""" # 完整的演示一个协程:
# 原理和上面的示例是一样的,都是用的yield和send来实现,只是这个示例使用了两个函数互相协作去完成了一个生产包子和吃包子的功能
import time
def consumer(name):
print("%s 准备吃包子啦!" % name)
while True:
baozi = yield
print("包子[%s]来了,被[%s]吃了!" % (baozi, name)) def producer(name):
people1 = consumer('Aaron')
people2 = consumer('James')
people1.__next__()
people2.__next__()
for i in range(6):
time.sleep(1)
print("\n做了1个包子,分成了两半")
people1.send(i)
people2.send(i) producer("FanHeng")
最新文章
- SDWebImage源码解读 之 NSData+ImageContentType
- 如何去除My97 DatePicker控件上右键弹出官网的链接
- 把Git Repository建到U盘上去(转)
- 常用webservice接口
- 工厂方法(factory method)
- oracle 利用flashback将备库激活为read wirte(10g 及上)
- Ubuntu的一些常用快捷键
- 【翻译】使用Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定
- 看了些关于rem的知识点,在这做个自我总结归纳
- Rocketmq整体分析
- python命令行解析工具argparse模块【1】
- linux学习心得之目录树开端与/etc(图文)
- Spark中的wordCount程序实现
- 自己写实现char TO wchar_t 的转换
- python 操作手机
- VS解决-无法打开文件“opencv_ts300d.lib”问题
- 微信为啥不能直接下载.apk安装包
- 【BZOJ】【1876】【SDOI2009】SuperGCD
- go语言基础之append扩容特点
- 前端 html border-right: 1px solid red;