Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen Multithreading und Multiprozess in Python

Der Unterschied zwischen Multithreading und Multiprozess in Python

清浅
清浅Original
2019-04-08 11:20:275534Durchsuche

Die Unterschiede zwischen Multiprozess und Multithreading in Python sind: Threads müssen im Prozess ausgeführt werden, ein Prozess kann mehrere Threads enthalten; Prozesse können denselben Adressraum teilen und Prozesse teilen sich physische Adressen, die Thread-Erstellung ist einfach , und Prozesse müssen Prozesse klonen usw.

Was ich heute teilen werde, ist das Wissen und die Unterschiede zwischen Multiprozess und Multithreading in Python. Als nächstes werde ich es im Detail vorstellen hat einen gewissen Referenzwert. Ich hoffe, es wird für alle hilfreich sein

Der Unterschied zwischen Multithreading und Multiprozess in Python

[Empfohlener Kurs: Python-Tutorial]

Konzept des Threads:

Thread ist die kleinste Einheit für die Operationsplanung im Betriebssystem. Es wird in den Prozess eingebunden und ist die eigentliche Bedieneinheit im Prozess. Ein Thread bezieht sich auf eine einzelne Kontrollflusssequenz in einem Prozess. Ein Prozess kann mehrere Threads haben und jeder Thread kann verschiedene Aufgaben gleichzeitig ausführen. Ein Thread kann als eine Folge von Anweisungen betrachtet werden, die zur Ausführung durch eine CPU erforderlich sind

Multi-Threading

Zwei Module werden in der Standardbibliothek von Python bereitgestellt: _thread und threading , _thread ist ein Low-Level-Modul, das keine Daemon-Threads unterstützt. Wenn der Haupt-Thread beendet wird, werden alle untergeordneten Threads zwangsweise beendet. Threading ist ein erweitertes Modul, das _thread kapselt, um Daemon-Threads zu unterstützen. In den meisten Fällen müssen wir nur das erweiterte Modul Threading verwenden.

Der Unterschied zwischen Multithreading und Multiprozess in Python

Das Konzept des Prozesses:

Ein Prozess bezieht sich auf einen Ausführungsprozess eines Programms auf einem bestimmten Datensatz ein System Eine unabhängige Einheit für Ressourcenzuweisung und Ausführungsaufrufe. Das heißt, jede Anwendung hat ihren eigenen Prozess. Wenn ein Prozess startet, generiert er zuerst einen Thread, der als Hauptthread bezeichnet wird, und dann erstellt der Hauptthread andere untergeordnete Threads

Mehrere Prozesse:

Mehrere Prozesse Der Prozess ist das Multiprocessing-Modul, das Remote- und lokale Parallelität bietet. Im Verwendungsszenario einer Multiprocessing-Bibliothek werden alle untergeordneten Prozesse von einem übergeordneten Prozess gestartet, der eine Reihe von Objektzuständen verwaltet. Sobald dieser Prozess beendet wird, befindet sich der untergeordnete Prozess wahrscheinlich in einem instabilen Zustand, daher sollte der übergeordnete Prozess so wenig wie möglich tun, um seine Stabilität aufrechtzuerhalten

Der Unterschied zwischen Multithreading und Multiprozess in Python

Threads und Prozesse Der Unterschied

(1) Der Thread muss in einem bestimmten Prozess ausgeführt werden. Ein Prozess kann mehrere Threads enthalten und es kann nur einen Hauptthread geben.

(2) Mehrere Threads teilen sich denselben Adressraum, öffnen Dateien und andere Ressourcen. Mehrere Prozesse teilen sich physischen Speicher, Festplatten, Drucker und andere Ressourcen.

(3) Threads belegen fast keine Ressourcen, haben einen geringen System-Overhead, eine hohe Umschaltgeschwindigkeit und mehrere Threads im selben Prozess können Daten gemeinsam nutzen, diese können jedoch nicht von Prozessen gemeinsam genutzt werden

(4 ) Die Erstellung eines neuen Threads ist sehr einfach, aber die Erstellung eines neuen Prozesses erfordert das Klonen des übergeordneten Prozesses

(5) Ein Thread kann andere Threads im selben Prozess steuern und betreiben; Betreiben Sie nur untergeordnete Prozesse

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle hilfreich ist.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Multithreading und Multiprozess in Python. 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