Heim  >  Artikel  >  Was ist die Beziehung und der Unterschied zwischen Threads und Prozessen?

Was ist die Beziehung und der Unterschied zwischen Threads und Prozessen?

青灯夜游
青灯夜游Original
2021-06-25 16:06:5158923Durchsuche

Beziehung: Thread ist die grundlegende Ausführungseinheit eines Prozesses. Alle Aufgaben eines Prozesses werden in Threads ausgeführt. Unterschiede: 1. Threads im selben Prozess teilen sich den Adressraum dieses Prozesses, aber die Adressräume zwischen Prozessen sind unabhängig. 2. Threads im selben Prozess teilen sich die Ressourcen dieses Prozesses, aber die Ressourcen zwischen Prozessen sind unabhängig.

Was ist die Beziehung und der Unterschied zwischen Threads und Prozessen?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Dell G3-Computer.

Die Beziehung zwischen Threads und Prozessen

Thread-Definition

Thread ist die grundlegende Ausführungseinheit eines Prozesses. Alle Aufgaben eines Prozesses werden in Threads ausgeführt. Wenn ein Prozess Aufgaben ausführen möchte, ist dies der Fall muss einen Thread haben. Der Prozess muss mindestens einen Thread haben. Ein Thread wird standardmäßig gestartet, wenn das Programm gestartet wird. Dieser Thread wird als Hauptthread oder UI-Thread bezeichnet an eine im System laufende Anwendung

Jeder Prozess ist unabhängig und jeder Prozess läuft in seinem eigenen dedizierten und geschützten Speicher


Der Unterschied zwischen Prozessen und Threads

Adressraum: Threads desselben Prozesses teilen sich den Adressraum dieses Prozesses, und es gibt unabhängige Adressräume zwischen Prozessen.

Ressourcenbesitz: Threads im selben Prozess teilen sich die Ressourcen dieses Prozesses (z. B. Speicher, E/A, CPU usw.), aber die Ressourcen zwischen Prozessen sind unabhängig.

Nachdem ein Prozess abstürzt, hat dies keine Auswirkungen auf andere Prozesse im geschützten Modus. Wenn jedoch ein Thread abstürzt, stirbt der gesamte Prozess ab. Daher ist Multiprozess robuster als Multithreading.

Der Prozesswechsel ist ressourcenintensiv und hocheffizient. Wenn es also um häufiges Umschalten geht, ist es besser, Threads als Prozesse zu verwenden. Wenn gleichzeitige Vorgänge gleichzeitig ausgeführt werden müssen und bestimmte Variablen gemeinsam genutzt werden müssen, können Sie nur Threads und keine Prozesse verwenden. Ausführungsprozess: Jeder unabhängige Prozess verfügt über einen Einstiegspunkt für die Programmausführung, eine sequentielle Ausführungssequenz und ein Programm Einstiegspunkt. Threads können jedoch nicht unabhängig ausgeführt werden und müssen im Anwendungsprogramm vorhanden sein, und das Anwendungsprogramm bietet eine Steuerung für die Ausführung mehrerer Threads. Threads sind die Grundeinheit der Prozessorplanung, Prozesse jedoch nicht.

Erweiterte Informationen: Die Bedeutung von Multithreading

Vorteile

Kann die Ausführungseffizienz des Programms angemessen verbessern

Kann die Ressourcennutzung (CPU, Speicher) angemessen verbessern


Nach der Aufgabenausführung im Thread Nach Abschluss wird der Thread automatisch zerstört

Nachteile

Das Öffnen von Threads erfordert eine bestimmte Menge an Speicherplatz (standardmäßig belegt jeder Thread 512 KB)

    Wenn eine große Anzahl von Threads geöffnet wird, belegt er einen viel Speicherplatz und verringert die Leistung des Programms
  • Je mehr Threads, desto größer der CPU-Overhead beim Aufrufen von Threads
  • Die Programmierung ist komplexer, z. B. die Kommunikation zwischen Threads und die gemeinsame Nutzung von Multithread-Daten Wissen, besuchen Sie bitte die
  • FAQ
  • -Kolumne!

Das obige ist der detaillierte Inhalt vonWas ist die Beziehung und der Unterschied zwischen Threads und Prozessen?. 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