Dieser Artikel stellt Ihnen die Rolle von pcntl_fork in PHP vor. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
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, 0 wird im untergeordneten Prozess zurückgegeben und -1 wird zurückgegeben, wenn ein Fehler auftritt.
2 Kopieren Sie den Code und die Daten des übergeordneten Prozesses. Dann bedeutet das: Der Code und die Daten, die den untergeordneten und übergeordneten Prozessen gehören, sind genau gleich.
3. Kernpunkt: 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 der Code des erstellten untergeordneten Prozesses auch in der fünften Zeile ausgeführt . Der untergeordnete Prozess hat die Daten und den Code kopiert. Daher gibt es im Unterprozess auf die gleiche Weise Variablen wie $eins, $zwei usw.
for ($i = 0; $i < 3; $i++) { $pid = pcntl_fork(); } sleep(30);
Also: Wie viele Unterprozesse 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)
Grund: Wenn der übergeordnete Prozess einen untergeordneten Prozess 0 erstellt, wenn i = 0 ist, ist dies zu diesem Zeitpunkt der untergeordnete Prozess Der Prozess führt die Schleife weiterhin aus. Erstellen Sie Ihren eigenen untergeordneten Prozess. Auf die gleiche Weise wird bei i = 0 ein untergeordneter Prozess 0 erstellt. Zu diesem Zeitpunkt führt der untergeordnete Prozess die Schleife weiter aus. Erstellen Sie Ihren eigenen untergeordneten Prozess. Auf die gleiche Weise: Wenn i = 0, wird ein untergeordneter Prozess 0 erstellt. Zu diesem Zeitpunkt führt der untergeordnete Prozess die Schleife weiter aus. Erstellen Sie Ihren eigenen untergeordneten Prozess. Auf die gleiche Weise: Dies wird auch passieren, wenn i=1...
Empfohlenes Lernen: php-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWelche Funktion hat pcntl_fork in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!