Python多进程:为什么终止进程后该进程会变成僵尸进程?

6

我有一些使用Python多进程的代码,父进程启动了一堆子工作进程,并在一段时间后终止它们:

from multiprocessing import Process

nWorkers = 10
curWorkers = []
for iw in range(nWorkers):
    pq = Process(target=worker, args=(worker's_args_here))
    pq.start()
    curWorkers.append(pq)

# Do work here...

for pw in curWorkers:
    pw.terminate()

然而,所有的子进程在终止后仍然显示为僵尸进程。它们是僵尸进程吗?更重要的是,我该如何终止它们,以便它们真正消失?

1个回答

8
尝试添加如下内容:
for pw in curWorkers:
    pw.join()

最后,.terminate()只是杀死进程。在子进程完全消失之前,父进程仍需要收割它(至少在类Linux系统上)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接