如何使queue.get尽可能快地返回

时间:2013-09-16 11:51:30

标签: python queue multiprocessing

我有一个以下代码片段,使用多处理模块:

import time

from multiprocessing import Process, Queue

q = Queue()

def feeder():
    x=0
    while True:
       q.put(x)
       time.sleep(1)
       x+=1

p=Process(target=feeder).start()

while True:
    print q.get()

当新数据到达队列时,现在q.get每秒打印一次。我希望q.get返回(即通过引发错误或返回None,或通过其他方法)尽可能快。

1 个答案:

答案 0 :(得分:1)

您是否阅读过the documentation for .get

while True:
    try:
        print q.get(block=False)  # or q.get_nowait()
    except Queue.Empty:
        pass