我一直試圖在我的機器上的 Jupyter 上測驗這段簡單的代碼,并且該單元無限期地運行而不輸出任何內容。是否有某種錯誤或什么?我為熊貓行程使用了??完全相同的代碼,pool.map并且一切正常,但無法弄清楚這里發生了什么。
import multiprocessing as mp
pool1 = mp.Pool(processes = 3)
def sumP(a, b):
return (a * b) / (a - b 1)
f1, f2, f3 = 24, 31, 45
new_rows2 = pool1.starmap(sumP, [(f1, f2), (f2, f3), (f1, f3)])
print(new_rows2)
而細胞只是繼續運行。我使用pool1.map或 都沒有關系pool1.starmap。你們有沒有其他方法可以并行化這個程序?
uj5u.com熱心網友回復:
發生這種情況是因為作業行程嘗試 import sumP,這也創建了另外 3 個行程,ad-infinium。
您需要對多行程創建進行保護,以便作業人員不會無限期地產生:
import multiprocessing as mp
def sumP(a, b):
return (a * b) / (a - b 1)
f1, f2, f3 = 24, 31, 45
if __name__ == "__main__":
pool1 = mp.Pool(processes=3)
new_rows2 = pool1.starmap(sumP, [(f1, f2), (f2, f3), (f1, f3)])
print(new_rows2)
在多處理檔案下查找“安全匯入主模塊”以獲取更多資訊。您不應在匯入主模塊期間創建池。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318757.html
標籤:Python 蟒蛇-3.x 多线程 python-多处理
