簡體   English   中英

Python 多處理似乎沒有結束

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM