In diesem Artikel lernen Sie die Funktion pcntl_fork() in PHP kennen und verstehen ihren Ausführungsprozess. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
【Empfohlene Studie: „PHP-Video-Tutorial“】
Die Funktion pcntl_fork() ist die Funktion, die zum Erstellen eines Prozesses im Modul php-pcntl verwendet wird. (Windows wird nicht unterstützt)
Was die Installation und Aktivierung der Erweiterung php_pcntl betrifft, werde ich sie hier nicht vorstellen, sondern nur die Funktion pcntl_fork() selbst analysieren.
$one = 123; $one++; $two = time(); $pid = []; $pid = pcntl_fork(); $three = time();
Wenn die Funktion pcntl_fork() ausgeführt wird, wird ein untergeordneter Prozess erstellt. Der untergeordnete Prozess kopiert alles über den aktuellen Prozess, also den übergeordneten Prozess: Daten, Code und Status.
1. Wenn pcntl_fork() erfolgreich einen untergeordneten Prozess erstellt, wird die untergeordnete Prozessnummer im untergeordneten Prozess zurückgegeben, und im Falle eines Fehlers wird -1 zurückgegeben kopiert den Code des übergeordneten Prozesses, Daten. Dann bedeutet das: Der Code und die Daten, die den untergeordneten und übergeordneten Prozessen gehören, sind genau gleich.
3.
Wichtiger Punkt: Der untergeordnete Prozess kopiert den Status des übergeordneten Prozesses, daher gibt es den obigen Beispielcode: PCntl_fork wird in der fünften Zeile ausgeführt, dann wird auch der Code des erstellten untergeordneten Prozesses ausgeführt ab der fünften Zeile ausgeführt. Der untergeordnete Prozess hat die Daten und den Code kopiert. Daher gibt es im untergeordneten Prozess die gleichen Variablen: $one, $two und andere Variablen
Also: Wie viele untergeordnete Prozesse werden tatsächlich durch die obige for-Schleife generiert? Die Antwort ist 7. Unter Linux können Sie den Befehl ps verwenden, um 8 Prozesse anzuzeigen (1 übergeordneter Prozess, 7 untergeordnete Prozesse)for ($i = 0; $i < 3; $i++) { $pid = pcntl_fork(); } sleep(30);Nach dem Login kopierenGrund: Der übergeordnete Prozess erstellt einen untergeordneten Prozess 0, wenn i = 0. Zu diesem Zeitpunkt Der untergeordnete Prozess wird die Schleife weiterhin ausführen. Erstellen Sie Ihren eigenen untergeordneten Prozess. Auf die gleiche Weise: Das Gleiche passiert, wenn i=1...
Weitere Kenntnisse zum Programmieren finden Sie unter:
Einführung in die ProgrammierungDas obige ist der detaillierte Inhalt vonEine ausführliche Analyse der Funktion pcntl_fork() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!