本文介绍了为什么这个队列是这样的呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在编写一个从多处理队列提取的对象,我发现当我运行这段代码时,我得到data = []
。然而,如果我告诉程序在指定的位置休眠一小段时间,我会得到data = [1,2]
,这是它应该得到的。
from multiprocessing import Queue
import time
q = Queue()
taken = 0
data = []
for i in [1,2]:
q.put(i)
# time.sleep(1) making this call causes the correct output
while not q.empty() and taken < 2:
try:
data.append(q.get(timeout=1))
taken+=1
except Empty:
continue
**EDIT:**如果While循环之前有一条print语句,也会发生这种情况。这表明对q.put()的调用发生了一些问题,但我找不到有关此问题的任何文档。
推荐答案
在用于多处理的docs中提到。队列
这篇关于为什么这个队列是这样的呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!