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. (Apprentissage recommandé : Tutoriel vidéo PHP)
La programmation multi-processus de PHP n'est pas supportée dans l'environnement Windows Cet article est principalement développé et testé dans l'environnement Linux<.>
Un schéma de structure simple
Fonctions principales
pcntl_fork : Créer plusieurs processus, deux éléments seront renvoyés après l'appel Le pid du processus, 0 est le processus enfant, supérieur à 0 est le processus parent (le processus parent obtient l'identifiant du processus enfant, il est donc supérieur à 0), -1 signifie le échec de la création$pid = $pcntlInstall ? pcntl_fork() : 0;if ($pid == -1) { //fork失败 } elseif ($pid > 0) { //父进程 ...... } elseif ($pid == 0) { //子进程 ...... }
/配合pcntl_signal使用 declare (ticks = 1); //当子进程退出时,会触发该函数,当前子进程数-1 pcntl_signal(SIGCHLD, function ($signo) { switch ($signo) { case SIGCHLD: echo $curChildPro . 'SIGCHLD', PHP_EOL; $curChildPro--; break; } });
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!