【发布时间】:2012-11-15 10:31:58
【问题描述】:
我的问题是完成子进程,我使用多进程库,并且在一台带有返回或退出线的机器上,进程在加入之前死亡,但在另一台机器上没有。这些过程总是在增长,并且在完成工作后它们都不会完成。两台机器的python版本都是2.7.3rc2。
semaphore_processes_limit = BoundedSemaphore(value=PROCS_LIMIT)
# Starting searches
procs = []
for word in words:
semaphore_processes_limit.acquire()
p = Process(target=searching, args=(word,))
procs.append(p)
p.start()
# Wait for all worker processes to finish
for p in procs:
p.join()
# Process
def searching(word):
return # or exit(0)
谢谢。
【问题讨论】:
-
终于找到了原因,但我不明白为什么。当我在子进程中使用 Queue 对象时,有时这个 Queue 会产生另一个子进程,然后这个进程永远不会死。