Heim >Backend-Entwicklung >PHP-Problem >Der Unterschied zwischen PHP-Threads und -Prozessen
1 Was ist ein Prozess
Ein Prozess ist eine Instanz der Programmausführung, und a Der Prozess kann Ressourcen wie CPU und Speicher bereitstellen. Ein Prozess umfasst im Allgemeinen einen Befehlssatz und Systemressourcen, wobei der Befehlssatz Ihr Code ist und sich Systemressourcen auf CPU, Speicher, E/A usw. beziehen. (Empfohlenes Lernen: PHP-Programmierung vom Einstieg bis zur Beherrschung)
Ein Prozess ist ein dynamischer Ausführungsprozess eines Programms in einem Datensatz. Er kann einfach als „das ausführende Programm“ verstanden werden. Dies ist eine unabhängige Einheit für die Zuweisung und Planung von CPU-Ressourcen.
Ein Prozess besteht im Allgemeinen aus drei Teilen: Programm, Datensatz und Prozesssteuerungsblock. Das von uns geschriebene Programm wird verwendet, um zu beschreiben, welche Funktionen der Prozess ausführen muss und wie er ausgeführt wird. Der Datensatz besteht aus den Ressourcen, die das Programm während der Ausführung verwenden muss Beschreiben Sie den Ausführungsänderungsprozess des Prozesses und des Systems. Es kann zur Steuerung und Verwaltung von Prozessen verwendet werden. Es ist das einzige Zeichen dafür, dass das System die Existenz eines Prozesses erkennt.
Die Einschränkung von Prozessen besteht darin, dass der Aufwand für die Erstellung, Löschung und Umschaltung relativ hoch ist.
2. Was ist ein Thread
Ein Thread ist ein Ausführungsfluss eines Prozesses. Er ist Teil des Prozesses und läuft unabhängig kleiner als die Einheit.
Erklären Sie: Der Prozess weist zwei Merkmale auf: Das eine ist der Besitz von Ressourcen und das andere die Planung der Ausführung (Befehlssatz). Threads sind Teil der Planung der Ausführung und beziehen sich auf den Pfad der Prozessausführung, der auch als Programm bezeichnet wird Ausführung. Threads werden manchmal als leichte Prozesse bezeichnet.
Threads sind ein Konzept, das nach Prozessen entwickelt wird. Ein Thread wird auch als Lightweight-Prozess bezeichnet. Er ist eine grundlegende CPU-Ausführungseinheit und die kleinste Einheit im Programmausführungsprozess. Er besteht aus einer Thread-ID, einem Programmzähler, einem Registersatz und einem Stapel. Ein Prozess kann mehrere Threads enthalten.
Der Vorteil von Threads besteht darin, dass sie den Overhead der gleichzeitigen Ausführung von Programmen reduzieren und die Parallelitätsleistung des Betriebssystems verbessern. Der Nachteil besteht darin, dass Threads keine eigenen Systemressourcen haben und nur über wesentliche Ressourcen verfügen zur Laufzeit, aber das Gleiche Jeder Thread eines Prozesses kann die Systemressourcen teilen, die dem Prozess gehören. Wenn der Prozess mit einem Workshop verglichen wird, dann sind die Threads wie Arbeiter in der Werkstatt. Für einige exklusive Ressourcen gibt es jedoch einen Sperrmechanismus, und eine unsachgemäße Handhabung kann zu einem „Deadlock“ führen.
Der Unterschied zwischen Prozess und Thread
(1) Ein Prozess ist eine unabhängige Einheit für die Ressourcenzuweisung und -planung, während ein Thread die Grundeinheit der CPU-Planung ist
(2) Derselbe Prozess kann mehrere Threads umfassen, und die Threads teilen sich die Ressourcen des gesamten Prozesses (Register, Stapel, Kontext). Ein Thread kann nur zu einem Prozess gehören, und ein Prozess kann mehrere Threads haben. Ein Prozess enthält mindestens einen Thread
(3) Die Erstellung eines Prozesses ruft fork oder vfork auf, und die Erstellung eines Threads ruft auf pthread_create. Nach dem Ende des Prozesses werden alle ihm gehörenden Threads zerstört und das Ende eines Threads hat keinen Einfluss auf das Ende anderer Threads im selben Prozess
(4) Threads sind leichte Prozesse und ihre Erstellung und Die Zeit, die für die Zerstörung benötigt wird, ist viel kürzer als die des Prozesses. Die CPU wird Threads zugewiesen, das heißt, die Threads werden tatsächlich auf der CPU ausgeführt.
(5) Synchronisierung und gegenseitiger Ausschluss sind im Allgemeinen bei der Ausführung in Threads erforderlich, da sie alle Ressourcen desselben Prozesses gemeinsam nutzen
(6) Threads haben ihre eigenen privaten Attribute TCB, Thread-ID, Register, Hardware-Kontext und der Prozess verfügen auch über eigene private Attribute. Der Prozesssteuerungsblock PCB wird nicht gemeinsam genutzt und dient zum Markieren eines Prozesses oder Threads
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen PHP-Threads und -Prozessen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!