[英]Python Multiprocessing doesn't seem to end
我有一個將大量數據移動到數據庫中的過程。 我為此使用多處理。
它運行得又快又好,但即使它完成了(所有行都被移動了),它似乎也沒有結束。
我添加了 join 因為我認為這意味着在所有其他進程完成之前該進程不會終止
我在這里錯過了什么嗎? 為什么不結束?
p=mp.Pool(cpu_count())
p.map(do_process, result)
p.close()
p.join()
所以一個更好的方法是使用joblib:
import joblib
with joblib.parallel_backend('loky'):
results = joblib.Parallel(n_jobs=-1)(
joblib.delayed(do_process)(item)
for item in result
)
我在這里假設result
對象映射到do_process
函數。 with
語句確保關閉循環。 如果您想知道發生了什么,那么您可以向joblib.Parralel
對象添加詳細設置。
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.