python多处理:为什么进程在终止后失效?

python多处理:为什么进程在终止后失效?,python,multiprocessing,terminate,zombie-process,Python,Multiprocessing,Terminate,Zombie Process,我有一些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 he

我有一些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()
然而,子进程在终止后很长时间内都显示为不存在。它们是僵尸进程吗?更重要的是,我应该如何终止它们,使它们真正消失?

尝试添加:

for pw in curWorkers:
    pw.join()
最后
.terminate()
只会终止进程。在子进程完全消失之前,父进程仍然需要获取它(至少在Linux-y系统上)