Créer un programme multi-processus

fonction

pcntl_fork crée un nouveau processus
pcntl_waitpid attend ou retourne le statut du processus enfant de fork
posix_getpid retourne l'ID du processus actuel
posix_getppid obtient l'ID du processus parent

Remarque

pcntl_fork est appelé une fois et renvoie deux valeurs; le processus enfant obtient 0 et le processus parent obtient l'ID de processus enfant.

Afficher tous les processus PHP en cours d'exécution

ps -ef |grep php

Exemple

<?php

echo "Master process id=".posix_getpid().PHP_EOL;
$pid = pcntl_fork();

switch ($pid){
    
    
    case -1:
        die('Create failed');
    case 0:
        //Child
        echo "Child process id = ".posix_getpid().PHP_EOL;
        sleep(2);
        echo "I will exit";
        break;
    default:
        //等待子进程退出,后之心父进程的退出
        if($exit_id = pcntl_waitpid($pid, $status, WUNTRACED)){
    
    
            echo "Child({
      
      $exit_id}) exited\n";
        }
        //Parent
        echo "Parent process id = ".posix_getpid().PHP_EOL;
        break;
}
sleep(18);

Je suppose que tu aimes

Origine blog.csdn.net/weixin_39218464/article/details/113798141
conseillé
Classement