Heim  >  Artikel  >  Weibo Qzone WeChat pcntl_fork implementiert PHP-Mehrprozess

Weibo Qzone WeChat pcntl_fork implementiert PHP-Mehrprozess

小云云
小云云Original
2017-11-03 13:57:331902Durchsuche

Was PHP-Ingenieure normalerweise am häufigsten verwenden, ist PHP-FMP zur Planung von PHP-Prozessen. Die Verwendung von PHP ist nicht auf das Web beschränkt, es kann auch für die Programmierung von Systemtools, die Überwachung oder den Betrieb und die Wartung verwendet werden. Lassen Sie uns als Nächstes darüber sprechen, wie Sie die PHP-Multiprozessprogrammierung implementieren.

Starten Sie zunächst einen Hauptprozess, der zum Lesen von Konfigurationsinformationen verwendet wird.

Zum Beispiel habe ich gelesen, dass ich 5 Indikatoren überwachen muss. Als nächstes startet der Hauptprozess fünf Unterprozesse, um jeweils diese fünf Indikatoren zu überwachen.

Vereinfachte Operation: Ein Hauptprozess erstellt 5 Unterprozesse

Um einen Prozess zu erstellen, müssen Sie pcntl_fork() verwenden, eine Funktion von PHP. Einige Leute sind möglicherweise nicht mit dieser Funktion vertraut , aber sie wurden Linux ausgesetzt. Jeder, der C geworden ist, weiß, dass es in Linux eine Funktion namens fork() gibt, die zum Erstellen untergeordneter Prozesse verwendet wird.

Es ist zu beachten, dass diese Funktion nur unter Linux genutzt werden kann und die Erweiterung pcntl installiert werden muss.

In der offiziellen Dokumentation heißt es:

Die Funktion pcntl_fork() erstellt einen untergeordneten Prozess. Dieser untergeordnete Prozess unterscheidet sich von seinem übergeordneten Prozess nur in der PID (Prozessnummer) und PPID (übergeordnete Prozessnummer). . Einzelheiten zur Funktionsweise von Fork auf Ihrem System finden Sie im Fork(2)-Handbuch Ihres Systems.

Bei Erfolg wird die PID des generierten untergeordneten Prozesses im Ausführungsthread des übergeordneten Prozesses und 0 im Ausführungsthread des untergeordneten Prozesses zurückgegeben. Bei einem Fehler wird -1 im übergeordneten Prozesskontext zurückgegeben, der untergeordnete Prozess wird nicht erstellt und ein PHP-Fehler wird ausgelöst.

Auf diese Weise kann ein untergeordneter Prozess erstellt werden. Nachdem der untergeordnete Prozess erfolgreich erstellt wurde, wird die Methode nach pcntl_fork() ausgeführt.


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