python 协程示例源码 单线程高效处理生产者与消费者问题 yield用法

 示例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

猜你喜欢

转载自blog.csdn.net/chenhao0568/article/details/104897522
今日推荐