Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie Multiprozesse in PHP

So implementieren Sie Multiprozesse in PHP

王林
王林Original
2020-08-26 13:31:333486Durchsuche

So implementieren Sie Multiprozesse in PHP: durch pcntl- und Posix-Erweiterungen. Je nach Bedarf können wir die Funktion pcntl_fork() verwenden, um einen untergeordneten Prozess zu erstellen, und die Funktion pcntl_wait(), um den aktuellen Prozess zu blockieren.

So implementieren Sie Multiprozesse in PHP

php-Multiprozess erfordert PCNTL- und Posix-Erweiterungsunterstützung.

Die Implementierung mehrerer Prozesse kann nur im CLI-Modus erfolgen. In einer Webserverumgebung können unvorhersehbare Ergebnisse auftreten. 🔜 call , gibt die untergeordnete Prozess-PID im übergeordneten Prozess zurück, gibt 0 im untergeordneten Prozess zurück und gibt -1 im Fehlerfall zurück.

pcntl_fork:

Blockiert den aktuellen Prozess, bis ein untergeordneter Prozess beendet wird oder ein Signal zum Beenden des aktuellen Prozesses erhält und das vom untergeordneten Prozess zum Beenden gesendete SIGCHLD nicht gezählt wird. Verwenden Sie $status, um den Statuscode des untergeordneten Prozesses zurückzugeben, und Sie können den zweiten Parameter angeben, um anzugeben, ob er in einem blockierenden Zustand aufgerufen wird. Der Rückgabewert der Funktion ist die PID des untergeordneten Prozesses. der Rückgabewert ist -1; Auf nicht blockierende Weise aufgerufen, kann die Funktion auch 0 zurückgeben, wenn ein untergeordneter Prozess läuft, aber nicht beendet wurde.

pcntl_wait ( int &$status [, int $options ] ):

Die Funktion ist die gleiche wie pcntl_wait, der Unterschied besteht darin, dass waitpid der untergeordnete Prozess ist, der auf die angegebene PID wartet. Wenn die PID -1 ist, ist pcntl_waitpid dasselbe wie pcntl_wait. Die Statusinformationen des untergeordneten Prozesses werden in $status in den Funktionen pcntl_wait und pcntl_waitpid gespeichert.

(Zugehörige Tutorial-Empfehlung:

php-Grafik-Tutorial
)

Beispiel:

Eine feste Anzahl von untergeordneten Prozessen wird immer in PHP ausgeführt.

Verwenden Sie nach Bedarf Kernfunktionen wie pcntl_fork (untergeordneten Prozess erstellen), pcntl_wait (aktuellen Prozess blockieren)

Code-Implementierung:

pcntl_waitpid ( int $pid , int &$status [, int $options ] )

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Multiprozesse in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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