多处理生成进程在调用return后无法终止

时间:2014-12-12 04:29:48

标签: python multiprocessing

我认为此问题之前有过相当高的可能性,但我无法找到合适的解决方案。

我正在使用python多处理。有时,我的所有子进程都会终止并正确返回。其他时候,他们没有。我想这是并行进程的方式。奇怪的是,孩子处理的最后一件事应该是:

job = q.get()
if job == None:
    q.put(None)
    print 'Got nothing, exiting'
    return 

始终打印此消息。它似乎在等待某些东西,但我不确定那可能是什么。它使用的所有内容都被在线文档声明为线程安全。我并不确定可以等待什么,这使得难以搜索解决方案。一个潜在的问题是,孩子处理在“返回”中排列可变列表。排队,但我还没有找到任何表明这有问题的东西。谢谢!

编辑:删除将结果排入结果队列的子进程部分似乎可以消除此问题。但是,我认为结果队列应该是线程安全的,因此这不应该是一个问题。

0 个答案:

没有答案