示例0:单线程高效处理生产者与消费者问题 yield用法
def consume():
while True:
# consumer 协程等待接收数据
number = yield # yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator
print("消费", number)
# 让初始化状态的 consumer 协程先执行起来,在 yield 处停止
consumer = consume() # 返回一个generator生成器
print(type(consumer))
next(consumer)
for num in range(0, 2):
print("生产", num)
consumer.send(num) # 发送数据给 consumer 协程
输出
<class 'generator'>
生产 0
消费 0
生产 1
消费 1
示例2:从函数中迭代返回,不用List,少占内存
def get():
for i in range(0, 3):
yield i
for m in get():
print(m)
输出
0
1
2