Heim > Artikel > Backend-Entwicklung > Ist PHP Multiprozess?
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. (Empfohlenes Lernen: PHP-Video-Tutorial)
Die Multiprozessprogrammierung von PHP wird in der Windows-Umgebung nicht unterstützt. Dieser Artikel wurde hauptsächlich in der Linux-Umgebung entwickelt und getestet 🎜>
Ein einfaches Strukturdiagramm
Hauptfunktionen
pcntl_fork: Mehrere Prozesse erstellen, Nach dem Aufruf werden zwei Elemente zurückgegeben. Die PID des Prozesses, 0 ist der untergeordnete Prozess, 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 Erstellung fehlgeschlagen$pid = $pcntlInstall ? pcntl_fork() : 0;if ($pid == -1) { //fork失败 } elseif ($pid > 0) { //父进程 ...... } elseif ($pid == 0) { //子进程 ...... }pcntl_signal: Registrieren Sie eine Signalverarbeitungs-Rückruffunktion. Sie können das gesendete Signal 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 den untergeordneten Prozess zu warten zum Beenden
Das obige ist der detaillierte Inhalt vonIst PHP Multiprozess?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!