gpt4 book ai didi

python - Gevent 队列 CPU 使用率高

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:36 25 4
gpt4 key购买 nike

为什么这段代码永久使用 95% 的 CPU? Producer没有发送任何请求,但是cpu很热。如何在消费者 greenlet 中不添加显式非零 sleep 超时的情况下降低 cpu 使用率?

from gevent import queue
from gevent import sleep
from gevent import Greenlet

def cons(q):
while True:
try:
data = q.get_nowait()
except queue.Empty:
sleep(0)
continue
print data

def prod(q):
while True:
#q.put_nowait('hello')
sleep(1)


if __name__ == '__main__':

q = queue.Queue()
cons1 = Greenlet.spawn(cons, q)
prod1 = Greenlet.spawn(prod, q)
cons1.join()
prod1.join()

最佳答案

第 8 行,使用 get() 而不是 get_nowait()

data = q.get()

super 简单,现在您的消费者将在等待更多工作时阻塞。

关于python - Gevent 队列 CPU 使用率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16640155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com