Heim > Backend-Entwicklung > PHP-Problem > Welche Funktion hat pcntl_fork in PHP?

Welche Funktion hat pcntl_fork in PHP?

醉折花枝作酒筹
Freigeben: 2023-03-09 19:42:01
nach vorne
2219 Leute haben es durchsucht

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.

Welche Funktion hat pcntl_fork in PHP?

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();
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage