Maison > Article > développement back-end > PHP prend-il en charge plusieurs processus ?
Lors de l'exécution de scripts sur le serveur, certaines tâches chronophages ne peuvent être évitées et l'utilisation de plusieurs processus est essentielle. Après PHP5.5, PHP a commencé à ajouter des éléments multi-processus pour répondre aux besoins de développement.
Remarque :
Extensions qui doivent être activées pour implémenter le multi-traitement : pcntl, posix.
La programmation multi-processus de PHP n'est pas prise en charge dans l'environnement Windows. Cet article est principalement développé et testé dans l'environnement Linux
Principal. function (Apprentissage recommandé : Tutoriel vidéo PHP)
pcntl_fork : Créez plusieurs processus après l'appel, le pid des deux processus sera renvoyé 0. est le processus enfant, et supérieur à 0 est le processus parent. (Le processus parent obtient l'identifiant du processus enfant, il est donc supérieur à 0), -1 signifie un échec de création
$pid = $pcntlInstall ? pcntl_fork() : 0; if ($pid == -1) { //fork失败 } elseif ($pid > 0) { //父进程 ...... } elseif ($pid == 0) { //子进程 ...... }
pcntl_signal. : Enregistrez une fonction de rappel de traitement du signal pour capturer le signal envoyé lorsque le processus enfant se termine
/配合pcntl_signal使用 declare (ticks = 1); //当子进程退出时,会触发该函数,当前子进程数-1 pcntl_signal(SIGCHLD, function ($signo) { switch ($signo) { case SIGCHLD: echo $curChildPro . 'SIGCHLD', PHP_EOL; $curChildPro--; break; } });
pcntl_wait : Utilisé pour mettre en pause le processus parent et attendre que le processus enfant se termine
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!