0
在下面的情況下何時需要在Pool
上調用.join()
和.close()
?閱讀文檔,它看起來像是等待流程完成。舉例來說,如果我做這樣的事情:多處理Python池
while True:
pool = Pool(processes=4)
results = []
for x in range(1000):
result = pool.apply_async(f, (x,))
results.append(result)
for result in results:
result.get(timeout=1)
print "finished"
我還需要等待其他過程與join()
和close()
完成?正如我所假設的那樣,因爲我正在迭代所有異步結果並等待(阻止)完成,到達print finished
時,所有進程都已退出?
這是正確的嗎?
此外,什麼時候進程開始工作的功能?我注意到有4個進程與ps -elf
並行運行。在這種情況下調用result.get()
之後,這些過程是否只能在該功能上起作用?