Eine ausführliche Analyse der Funktion pcntl_fork() in PHP

青灯夜游
Freigeben: 2023-04-09 18:44:01
nach vorne
2972 Leute haben es durchsucht

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.

Eine ausführliche Analyse der Funktion pcntl_fork() in PHP

【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();
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, 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

for ($i = 0; $i < 3; $i++) {
    $pid = pcntl_fork();
}
sleep(30);
Nach dem Login kopieren
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)

Grund: 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 Programmierung

! !

Das 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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!