Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie das Multiprocessing-Modul für die Multiprozessverwaltung in Python 3.x

So verwenden Sie das Multiprocessing-Modul für die Multiprozessverwaltung in Python 3.x

WBOY
WBOYOriginal
2023-07-31 18:36:231415Durchsuche

So verwenden Sie das Multiprocessing-Modul für die Multiprozessverwaltung in Python 3.x

Einführung:
In Python macht die Beliebtheit von Multicore-CPUs die Multiprozessprogrammierung zu einer wichtigen Fähigkeit. Das Multiprocessing-Modul ist eine Standardbibliothek in Python zur Verarbeitung von Multiprozessen. In diesem Artikel wird die Verwendung des Multiprocessing-Moduls für die Multiprozessverwaltung vorgestellt und anhand von Codebeispielen veranschaulicht.

1. Einführung in das Multiprocessing-Modul
Pythons Multiprocessing-Modul bietet einen Wrapper, der Python-Programme so zuordnen kann, dass sie auf mehreren Prozessen ausgeführt werden. Das Multiprocessing-Modul ist Thread-sicher und bietet mehr Funktionalität als das Threading-Modul.

2. Gemeinsame Funktionen und Klassen des Multiprocessing-Moduls

  1. multiprocessing.Process-Klasse
    multiprocessing.Process-Klasse wird zum Erstellen und Verwalten von Prozessen verwendet. Es verfügt über 4 Hauptmethoden:
  2. start(): Starten Sie den Prozess und rufen Sie die run()-Methode auf.
  3. run(): Die Eingabefunktion des Prozesses muss vom Benutzer definiert werden.
  4. join([timeout]): Warten Sie, bis der Vorgang beendet ist. Wenn kein Timeout angegeben ist, wird gewartet, bis der Prozess beendet ist.
  5. is_alive(): Stellt fest, ob der Prozess noch läuft.
  6. multiprocessing.current_process()-Funktion
    multiprocessing.current_process()-Funktion gibt das Process-Objekt des aktuellen Prozesses zurück.
  7. multiprocessing.active_children()-Funktion
    multiprocessing.active_children()-Funktion gibt eine Liste laufender untergeordneter Prozesse zurück, einschließlich nur untergeordneter Prozesse, die vom aktuellen Prozess erstellt wurden.
  8. multiprocessing.Pool-Klasse
    multiprocessing.Pool-Klasse wird zum Erstellen eines Prozesspools verwendet, der die Ausführung mehrerer Prozesse problemlos verwalten kann. Die am häufigsten verwendeten Methoden sind:
  9. apply(func, args): Führen Sie die Funktion synchron aus und geben Sie das Ergebnis zurück.
  10. apply_async(func, args): Führen Sie die Funktion asynchron aus und geben Sie das AsyncResult-Objekt zurück.
  11. close(): Prozesspool schließen und keine neuen Aufgaben mehr annehmen.
  12. join(): Der Hauptprozess wartet auf das Ende aller untergeordneten Prozesse.

3. Beispielcode mit dem Multiprocessing-Modul
Das Folgende ist ein einfaches Beispiel, das zeigt, wie das Multiprocessing-Modul für die Multiprozessverwaltung verwendet wird:

import multiprocessing

def worker(name):
    print('Worker %s' % name)
    return name

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=4)
    results = []
    
    for i in range(4):
        result = pool.apply_async(worker, args=(i,))
        results.append(result)

    pool.close()
    pool.join()
    
    for result in results:
        print(result.get())

Im obigen Code definieren wir zunächst eine Worker-Funktion, die einen Namen akzeptiert Parameter eingeben und den Namen ausdrucken. Verwenden Sie dann multiprocessing.Pool im Hauptprogramm, um einen Prozesspool mit 4 Prozessen zu erstellen. Als nächstes verwenden wir die Methode apply_async, um die Worker-Funktion asynchron auszuführen, indem wir einen Parameter i übergeben und ihn zur Ergebnisliste hinzufügen. Warten Sie abschließend, bis alle Prozesse die Ausführung über die Methoden pool.close() und pool.join() abgeschlossen haben. Schließlich erhalten wir das Ausführungsergebnis über die Methode result.get() und drucken es aus.

Durch Ausführen des obigen Codes werden die folgenden Ergebnisse ausgegeben:

Worker 0
Worker 1
Worker 2
Worker 3
0
1
2
3

Zusammenfassung:
Durch die Verwendung des Multiprocessing-Moduls können wir problemlos eine Multiprozessprogrammierung durchführen. In diesem Artikel werden die allgemeinen Funktionen und Klassen des Multiprocessing-Moduls vorgestellt und anhand von Beispielcodes demonstriert, wie diese verwendet werden. Durch die Verwendung des Multiprocessing-Moduls können Multi-Core-CPUs besser genutzt und die Effizienz der Programmausführung verbessert werden.

Referenz:
[1] Offizielle Python-Dokumentation – Multiprocessing-Modul https://docs.python.org/3/library/multiprocessing.html

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Multiprocessing-Modul für die Multiprozessverwaltung in Python 3.x. 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