Pythonの日常的なサンプルソースコードプロデューサーとコンシューマーの問題をシングルスレッドで効率的に処理すると、使用量が増えます

 例0:プロデューサーとコンシューマーの問題をシングルスレッドで効率的に処理すると、使用量が増えます

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
おすすめ