Heim >Backend-Entwicklung >PHP-Problem >Unterstützt PHP mehrere Prozesse?

Unterstützt PHP mehrere Prozesse?

(*-*)浩
(*-*)浩Original
2019-09-05 09:18:002738Durchsuche

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.

Unterstützt PHP mehrere Prozesse?

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!

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