我需要製作腳本,它在某種情況下產生並行進程(worker)並使其執行一些IO作業。完成後 - 關閉該過程。 但看起來像進程不會默認退出。產生幾個並行進程並在完成後將它們殺死
這裏是我的方法:
import multiprocessing
pool = multiprocessing.Pool(4)
def f(x):
sleep(10)
print(x)
return True
r = pool.map_async(f, [1,2,3,4,5,6,7,8,9,10])
但我在IPython中運行它,並whait所有印刷品,在這之後我可以運行的ps aux | grep ipython並看到很多進程。所以看起來這些工人還活着。
也許我做錯了什麼,但是我怎麼能讓這些進程在他們完成任務時終止?如果我想逐個產生大量的工作人員(例如,通過獲取rmq消息),我應該採用什麼方法?
爲什麼你要通過'None'池?這不就是你打算使用的進程數量嗎? – roganjosh
是的,謝謝!修正了它,沒有改變。 – Paul