为什么这段代码永久使用 95% 的 CPU?Producer 没有发送任何请求,但是 cpu 很热。如何在消费者 greenlet 中不添加显式非零睡眠超时的情况下降低 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()