Python 中的平行程式設計
在 Python 中,並行程式設計允許程式的某些部分同時執行,從而可能提高效能。為了在 Python 中實現並行性,多處理模組是一個流行的選擇。
範例:
考慮涉及兩個獨立函數solve1和solve2的程式碼結構。要並行化這些函數:
<code class="python">from multiprocessing import Pool pool = Pool() result1 = pool.apply_async(solve1, [A]) # Asynchronously evaluate solve1(A) result2 = pool.apply_async(solve2, [B]) # Asynchronously evaluate solve2(B) answer1 = result1.get(timeout=10) answer2 = result2.get(timeout=10)</code>
此程式碼建立一個處理池,該處理池產生程序來處理solve1和solve2的非同步執行。每個行程利用不同的 CPU 核心來同時執行。
替代並行化選項:
並行化程式碼部分的另一個選項是使用並行映射。在這種情況下,您將有一個參數列表,並對每個參數並行應用一個函數:
<code class="python">args = [A, B] results = pool.map(solve1, args)</code>
注意事項:
雖然線程也可以Python 中用於並行的全域解釋器鎖定(GIL) 會阻止Python 物件的並行執行,從而使執行緒對於並行化Python 程式碼無效。
以上是如何使用多處理和並行映射並行化 Python 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!