Multiprocessing.Pool: Welche Methode sollte ich verwenden?
Multiprocessing ermöglicht es Python, Funktionen gleichzeitig über mehrere Prozesse hinweg auszuführen. Die Auswahl der geeigneten Methode kann jedoch verwirrend sein, insbesondere wenn man Pool.apply, Pool.apply_async und Pool.map berücksichtigt. Lassen Sie uns ihre Unterschiede und Anwendungsfälle klären:
Pool.apply vs. Pool.apply_async vs. Pool.map
1. Pool.apply:
2. Pool.apply_async:
3. Pool.map:
Die richtige Methode auswählen
Verwenden Sie Pool.apply, wenn:
Verwenden Sie Pool.apply_async, wenn:
Verwenden Sie Pool.map, wenn:
Beispiel: Asynchroner Rückruf in Pool.apply_async
<code class="python">import multiprocessing as mp import time def foo_pool(x): time.sleep(2) return x*x result_list = [] def log_result(result): result_list.append(result) def apply_async_with_callback(): pool = mp.Pool() for i in range(10): pool.apply_async(foo_pool, args = (i, ), callback = log_result) pool.close() pool.join() print(result_list) if __name__ == '__main__': apply_async_with_callback()</code>
Ausgabe:
[1, 0, 4, 9, 25, 16, 49, 36, 81, 64]
Beachten Sie, dass die Reihenfolge der Ergebnisse im Gegensatz zu Pool.map möglicherweise nicht mit der Reihenfolge der Funktionsaufrufe übereinstimmt.
Das obige ist der detaillierte Inhalt vonWelche Pool-Methode sollte ich beim Python-Multiprocessing verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!