PHP prend-il en charge plusieurs processus ?

(*-*)浩
Libérer: 2023-02-23 16:24:01
original
2687 Les gens l'ont consulté

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.

PHP prend-il en charge plusieurs processus ?

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) {
    //子进程
    ......
 }
Copier après la connexion

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;
    }
});
Copier après la connexion

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!