Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mithilfe der Parallelität mehrere Python-Funktionen gleichzeitig ausführen?

Wie kann ich mithilfe der Parallelität mehrere Python-Funktionen gleichzeitig ausführen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-18 05:06:02231Durchsuche

How Can I Run Multiple Python Functions Simultaneously Using Parallelism?

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!

Stellungnahme:
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