Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine einfache Python-Schleife mithilfe von Multiprocessing einfach parallelisieren?

Wie kann ich eine einfache Python-Schleife mithilfe von Multiprocessing einfach parallelisieren?

Linda Hamilton
Freigeben: 2024-12-03 16:25:12
Original
360 Leute haben es durchsucht

How Can I Easily Parallelize a Simple Python Loop Using Multiprocessing?

Parallelisieren einer einfachen Python-Schleife

Die bereitgestellte Python-Schleife iteriert über einen Bereich und führt für jede Iteration eine Berechnung durch. Obwohl es mehrere Möglichkeiten gibt, diese Schleife zu parallelisieren, gibt die Frage an, dass der einfachste Ansatz bevorzugt wird. Im Folgenden werden zwei unkomplizierte Methoden mit Multi-Processing erläutert.

Multiprocessing mit dem Multiprocessing-Modul

Das Multiprocessing-Modul stellt eine ProcessPool-Klasse zum Erstellen eines Pools von Prozessen bereit. Der Code kann wie folgt umgeschrieben werden:

import multiprocessing

pool = multiprocessing.Pool(4)
out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
Nach dem Login kopieren

Hier wird ein Pool aus vier Prozessen erstellt. Die Methode pool.map() wendet die Funktion calc_stuff auf jedes Element im Iterable an und gibt ein Tupel von Ergebnissen zurück.

Mehrfachverarbeitung mit concurrent.futures.ProcessPoolExecutor

Alternativ Das Modul concurrent.futures stellt eine ProcessPoolExecutor-Klasse bereit, die die Prozesserstellung und -verwaltung vereinfacht. Der Code lautet:

from concurrent.futures import ProcessPoolExecutor

with ProcessPoolExecutor() as pool:
    out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
Nach dem Login kopieren

Beide Ansätze nutzen das Multiprocessing-Modul intern und bieten eine einfache Möglichkeit, die Schleife sowohl in Linux als auch in anderen Betriebssystemen zu parallelisieren.

Das obige ist der detaillierte Inhalt vonWie kann ich eine einfache Python-Schleife mithilfe von Multiprocessing einfach parallelisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage