我认为此问题之前有过相当高的可能性,但我无法找到合适的解决方案。
我正在使用python多处理。有时,我的所有子进程都会终止并正确返回。其他时候,他们没有。我想这是并行进程的方式。奇怪的是,孩子处理的最后一件事应该是:
job = q.get()
if job == None:
q.put(None)
print 'Got nothing, exiting'
return
始终打印此消息。它似乎在等待某些东西,但我不确定那可能是什么。它使用的所有内容都被在线文档声明为线程安全。我并不确定可以等待什么,这使得难以搜索解决方案。一个潜在的问题是,孩子处理在“返回”中排列可变列表。排队,但我还没有找到任何表明这有问题的东西。谢谢!
编辑:删除将结果排入结果队列的子进程部分似乎可以消除此问题。但是,我认为结果队列应该是线程安全的,因此这不应该是一个问题。