【发布时间】:2014-03-05 16:47:12
【问题描述】:
我正在运行 python 2.7.3,我注意到以下奇怪的行为。考虑这个最小的例子:
from multiprocessing import Process, Queue
def foo(qin, qout):
while True:
bar = qin.get()
if bar is None:
break
qout.put({'bar': bar})
if __name__ == '__main__':
import sys
qin = Queue()
qout = Queue()
worker = Process(target=foo,args=(qin,qout))
worker.start()
for i in range(100000):
print i
sys.stdout.flush()
qin.put(i**2)
qin.put(None)
worker.join()
当我循环超过 10,000 个或更多时,我的脚本会挂在 worker.join() 上。当循环仅达到 1,000 时,它工作正常。
有什么想法吗?
【问题讨论】:
标签: python process queue multiprocessing