2
我正在使用一個進程池。這種邏輯似乎一直工作到最近。爲什麼我不收割殭屍進程? (CentOS Linux,python)
pool = multiprocessing.Pool(processes = 2*multiprocessing.cpu_count())
for p in processArgs:
pool.apply_async(myFunc, p)
pool.close()
pool.join()
現在看來,這是在運行時,我結束了在倒閉狀態的所有子進程和父進程似乎沒有對一個事實,即解散過程進行pool.join()
但(基於a
)仍然存在,並且b
)關於接下來發生的邏輯看起來沒有被執行的事實。
殭屍進程是殭屍,對不對?這意味着他們已經死亡,但還沒有被收穫,對嗎?
[ps -el'說他們是殭屍嗎?](https://www.debian-administration.org/article/261/Finding_zombie_processes)你確定池已經完成所有項目的執行嗎? –
它確實表明它們是殭屍(Z存在)。 – vmayer
在執行pool.close()或pool.join()之前,我需要確保退出嗎?說實話,我從一個例子中複製了這個邏輯,並假設遊戲池在完成關閉之前已經完成了所有項目。 – vmayer