Heim  >  Artikel  >  Backend-Entwicklung  >  Wie PHP Prozesse verwaltet

Wie PHP Prozesse verwaltet

(*-*)浩
(*-*)浩Original
2019-09-20 13:15:053069Durchsuche

Wie PHP Prozesse verwaltet

Prozessmanagement – ​​Verhindern Sie, dass der Prozess zu einem Zombie-Prozess wird

Wie verwalten Sie die untergeordneten Prozesse, nachdem der Prozess erstellt wurde?

Bei der Verwendung von Signalen zur Verwaltung untergeordneter Prozesse gibt es im Allgemeinen zwei Situationen: (Empfohlenes Lernen: PHP-Programmierung vom Einstieg bis zur Beherrschung)

posix_kill() : Diese Funktion funktioniert nicht, wie der Name vermuten lässt. Sie sendet ein Signal an den untergeordneten Prozess. Bei Bedarf können Sie ein Prozessbeendigungssignal an den untergeordneten Prozess senden

pcntl_waitpid(): Warten Sie auf den untergeordneten Prozessstatus von fork oder geben Sie ihn zurück. Wenn der angegebene untergeordnete Prozess beim Aufruf dieser Funktion beendet wurde (allgemein als Zombie-Prozess bekannt), kehrt diese Funktion sofort zurück und alle Systemressourcen des untergeordneten Prozesses freigeben. Der Prozess kann verhindern, dass der untergeordnete Prozess zu einem Zombie-Prozess wird, was zu einer Verschwendung von Systemressourcen führt. Der übergeordnete Prozess hängt up, und der untergeordnete Prozess wird vom init-Prozess mit pid=1 (wait/waitpid) übernommen, bis der eigene Lebenszyklus des untergeordneten Prozesses endet und die Ressourcen vom System recycelt werden und der übergeordnete Prozess relevante Recyclingvorgänge ausführt

Zombie-Prozess: Der untergeordnete Prozess wird beendet und der übergeordnete Prozess erhält den untergeordneten Prozess nicht über den Wait/Waitpid-Status, die vom untergeordneten Prozess belegte Prozessnummer und andere Ressourcenbeschreibungen sind noch vorhanden, was zu Schäden führt: Beispielsweise ist die Prozessnummer begrenzt und die Prozessnummer kann nicht freigegeben werden, was dazu führt, dass in Zukunft keine Prozessnummer mehr verfügbar ist

**Wird im übergeordneten Prozess verwendet: pcntl_wait Oder der Zweck von pcntl_waitpid besteht darin, Arbeiter zu verhindern davon ab, zu Zombie-Prozessen zu werdenFunktion: Nach der Verwendung von pcntl_wait() wird nach dem Tod des untergeordneten Prozesses auch der übergeordnete Prozess gestoppt**

Schließlich übergeben wir das Bild unten. Lassen Sie uns kurz zusammenfassen und beschreiben Der Prozess dieser Multiprozessimplementierung:

Prozessmanagement-InterprozesskommunikationWie PHP Prozesse verwaltet

Warteschlange: z. B. Redis, empfohlen Socket: empfohlen

Pipe: Die Implementierung ist komplex, die Pipe (Pipe) liegt in Form einer Datei vor und es gibt einen Engpass bei der Festplatten-E/A-Leistung

Signal: Trägt eine kleine Informationsmenge, schwer zu verwalten

Prozessverwaltung – Wechsel zum Daemon-Prozess

Verwenden und implementieren Sie PHP-Deadloop. php &

Das obige ist der detaillierte Inhalt vonWie PHP Prozesse verwaltet. 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
Vorheriger Artikel:Wie PHP den Speicher verwaltetNächster Artikel:Wie PHP den Speicher verwaltet