Beim Ausführen von Skripten auf dem Server lassen sich einige zeitaufwändige Aufgaben nicht vermeiden und die Verwendung mehrerer Prozesse ist unerlässlich. Nach PHP5.5 begann PHP, Multiprozesselemente hinzuzufügen, um den Entwicklungsanforderungen gerecht zu werden.
Hinweis:
Erweiterungen, die aktiviert werden müssen, um Multi-Processing zu implementieren: pcntl, posix.
Multiprozessprogrammierung von PHP wird in der Windows-Umgebung nicht unterstützt. Dieser Artikel wurde hauptsächlich in der Linux-Umgebung entwickelt und getestet
Main Funktionen (empfohlenes Lernen: PHP-Video-Tutorial)
pcntl_fork: Nach dem Aufruf wird die PID der beiden Prozesse zurückgegeben ist der untergeordnete Prozess und größer als 0 ist der übergeordnete Prozess (der übergeordnete Prozess erhält die ID des untergeordneten Prozesses, ist also größer als 0), -1 bedeutet Erstellungsfehler
$pid = $pcntlInstall ? pcntl_fork() : 0; if ($pid == -1) { //fork失败 } elseif ($pid > 0) { //父进程 ...... } elseif ($pid == 0) { //子进程 ...... }
pcntl_signal : Registrieren Sie eine Signalverarbeitungs-Rückruffunktion, um das gesendete Signal zu erfassen, wenn der untergeordnete Prozess endet
/配合pcntl_signal使用 declare (ticks = 1); //当子进程退出时,会触发该函数,当前子进程数-1 pcntl_signal(SIGCHLD, function ($signo) { switch ($signo) { case SIGCHLD: echo $curChildPro . 'SIGCHLD', PHP_EOL; $curChildPro--; break; } });
pcntl_wait: Wird verwendet, um den übergeordneten Prozess anzuhalten und auf das Beenden des untergeordneten Prozesses zu warten
Das obige ist der detaillierte Inhalt vonUnterstützt PHP mehrere Prozesse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!