Cet article présente principalement l'utilisation du multi-processus pcntl de PHP. Il analyse les compétences d'utilisation de pcntl pour faire fonctionner le multi-processus avec des exemples. Il est d'une grande valeur pratique. Les amis dans le besoin peuvent s'y référer. 🎜>Cet article décrit l'utilisation de PHP avec des exemples d'utilisation multi-processus de pcntl. L'analyse spécifique est la suivante :
PHP peut également gérer une transaction avec plusieurs processus en utilisant la série de fonctions PCNTL. Par exemple, je dois obtenir 800 000 données de la base de données, puis effectuer une série de traitements ultérieurs. À ce stade, dois-je utiliser un seul processus ? Vous pouvez attendre jusqu'à aujourd'hui l'année prochaine. Vous devez donc utiliser la fonction pcntl.
Supposons que je veuille démarrer 20 processus et diviser 1 à 80 w de données en 20 parties. Le processus principal attend la fin de tous les processus enfants avant de quitter :
Voici After pcntl_fork. sort, une valeur pid sera renvoyée. Ce pid est 0 dans le processus enfant, et est le pid du processus enfant (>0) dans le processus parent. Si le pid est -1, cela signifie que le fork s'est mal passé. .$max = 800000; $workers = 20; $pids = array(); for($i = 0; $i < $workers; $i++){ $pids[$i] = pcntl_fork(); switch ($pids[$i]) { case -1: echo "fork error : {$i} \r\n"; exit; case 0: $param = array( 'lastid' => $max / $workers * $i, 'maxid' => $max / $workers * ($i+1), ); $this->executeWorker($input, $output, $param); exit; default: break; } } foreach ($pids as $i => $pid) { if($pid) { pcntl_waitpid($pid, $status); } }
L'utilisation d'un tableau $pids permet au processus principal d'attendre que tous les processus soient terminés avant de le terminer
Résumé: Ce qui précède est tout le contenu de cet article, je j'espère que cela pourra aider l'apprentissage de chacun. Recommandations associées :
La base de données en PHP implémente des fonctions de connexion permanente plus sécurisées et de mémorisation de moiUtilisation générée en PHP Méthodes de cryptage et décryptage des clés publiques et des clés privéesphp enregistre les noms d'utilisateur et les mots de passe basés sur des cookiesCe 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!