So führen Sie Funktionen gleichzeitig mit Python-Parallelität aus
In Python kann der Versuch, mehrere Funktionen gleichzeitig auszuführen, eine Herausforderung sein. Insbesondere wenn die Funktionen unabhängig voneinander ohne gegenseitige Beeinträchtigung arbeiten, schränkt das Warten auf den Abschluss einer Funktion vor dem Starten einer anderen die Effizienz ein. Um dieses Problem anzugehen, bietet Python zwei Ansätze: Threading und Multiprocessing.
Exploring Multiprocessing für echte Parallelität
Multiprocessing ist eine bevorzugte Wahl, um echte Parallelität in Python zu erreichen die von CPython auferlegten Einschränkungen. Hier ist ein ausführliches Beispiel, das die Verwendung von Multiprocessing demonstriert:
from multiprocessing import Process def func1(): print("func1: starting") for i in range(10000000): pass print("func1: finishing") def func2(): print("func2: starting") for i in range(10000000): pass print("func2: finishing") if __name__ == "__main__": p1 = Process(target=func1) p1.start() p2 = Process(target=func2) p2.start() p1.join() p2.join()
Dieser Ansatz verwendet die Process-Klasse aus dem Multiprocessing-Modul von Python, um untergeordnete Prozesse für jede Funktion zu erzeugen und zu verwalten. Durch das Starten und Verbinden der Prozesse können sowohl func1 als auch func2 parallel ausgeführt werden.
Kapselung der parallelen Ausführung
Die Mechanismen des Startens und Verbindens von Prozessen können bequem in einem gekapselt werden Funktion:
def runInParallel(*fns): proc = [] for fn in fns: p = Process(target=fn) p.start() proc.append(p) for p in proc: p.join() runInParallel(func1, func2)
Diese Funktion nimmt eine beliebige Anzahl von Funktionen als Eingabe und initiiert deren parallele Ausführung. Es abstrahiert die zugrunde liegende Prozessabwicklung und ermöglicht Ihnen die nahtlose Ausführung mehrerer Funktionen gleichzeitig.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe der Parallelität mehrere Python-Funktionen gleichzeitig ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!