並行化簡單的 Python 循環
提供的 Python 循環在一個範圍內迭代,並為每次迭代執行計算。雖然有多種方法可以並行化此循環,但該問題指定了對最簡單方法的偏好。下面解釋了使用多處理的兩種簡單方法。
使用多處理模組進行多處理
多處理模組提供了一個 ProcessPool 類別來建立進程池。程式碼可以重寫如下:
import multiprocessing pool = multiprocessing.Pool(4) out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
這裡建立了一個由四個行程組成的池。 pool.map() 方法將 calc_stuff 函數套用到可迭代中的每個元素,並傳回一個結果元組。
使用並發.futures.ProcessPoolExecutor 進行多處理
或者,concurrent.futures模組提供了一個ProcessPoolExecutor類,簡化了進程的建立和管理。程式碼變成:
from concurrent.futures import ProcessPoolExecutor with ProcessPoolExecutor() as pool: out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
兩種方法都在內部利用多處理模組,並提供了一種在 Linux 和其他作業系統中並行化循環的簡單方法。
以上是如何使用多重處理輕鬆並行化簡單的 Python 循環?的詳細內容。更多資訊請關注PHP中文網其他相關文章!