Maison  >  Article  >  développement back-end  >  Connaissez-vous pcntl_fork en php ?

Connaissez-vous pcntl_fork en php ?

慕斯
慕斯avant
2021-05-24 15:29:412793parcourir

À propos de la fonction pcntl_fork() est php - Fonctions du module pcntl utilisées pour créer des processus. Cet article va vous entraîner dans les arcanes de PHP, allons-y ensemble ! ! !

Connaissez-vous pcntl_fork en php ?

La fonction pcntl_fork() est la fonction utilisée pour créer un processus dans le module php-pcntl. (Windows n'est pas pris en charge)

Quant à la façon d'installer et d'activer l'extension php_pcntl, je ne la présenterai pas ici, j'analyserai uniquement la fonction pcntl_fork() elle-même.

$one = 123;$one++;$two = time();$pid = [];$pid = pcntl_fork();$three = time();

Lorsque : la fonction pcntl_fork() est exécutée, un processus enfant sera créé. Le processus enfant copiera tout ce qui concerne le processus actuel, c'est-à-dire le processus parent : les données, le code et l'état.

1. Lorsque pcntl_fork() crée avec succès un processus enfant, le numéro du processus enfant est renvoyé dans le processus parent, 0 est renvoyé dans le processus enfant et -1 est renvoyé s'il échoue

2 .Le processus enfant copiera le code et les données du processus parent. Cela signifie alors : le code et les données appartenant aux processus enfants et parents seront exactement les mêmes.

3.Point clé : Le processus enfant copiera le statut du processus parent, puis il y a l'exemple de code ci-dessus : Dans la cinquième ligne , pcntl_fork est exécuté, puis Le code du sous-processus créé est également exécuté à partir de la cinquième ligne. Le processus enfant a copié les données et le code. Par conséquent, la même chose existe dans le processus enfant : $one, $two et d'autres variables

for ($i = 0; $i < 3; $i++) {
    $pid = pcntl_fork();}sleep(30);

那么:上面的for循环,实际会产生多少个子进程?答案是7个,在linux下,用ps命令将可以看到8个进程(1个父进程,7个子进程)
Raison : Le processus parent est en ​ ​ ​​ ​​ je ​​ ​​ = ​​ ​​ 0 ​​ ​​ heure ​​ ​​ , ​​ ​​ Créer ​​ ​​ établir ​​ ​​ dehors ​​ ​​ un ​​ ​​ individuel ​​ ​​ fils ​​ ​​ Entrer ​​ ​​ Procédure ​​ ​​ 0 ​​ ​​ , ​​ ​​ ce ​​ ​​ heure ​​ ​​ de ​​ ​​ fils ​​ ​​ Entrer ​​ ​​ Procédure ​​ ​​ , ​​ ​​ retour ​​ ​​ réunion ​​ ​​ Continuation ​​ ​​ Suite ​​ ​​                     ​​ ​​ D'ACCORD ​​ ​​ Circulation ​​ ​​ anneau ​​ ​​ . ​​ ​​ Créer ​​ ​​ établir ​​ ​​ dehors ​​ ​​ Genre ​​ ​​ À ​​ ​​ depuis ​​ ​​               ​​ ​​ de ​​ ​​ fils ​​ ​​ Entrer ​​ ​​ Procédure ​​ ​​ . ​​ ​​ même ​​ ​​ raison ​​ ​​ : ​​ ​​ ​​ Lorsque i=0, un processus enfant 0 est créé. À ce moment, le processus enfant continuera à exécuter la boucle. Créez votre propre processus enfant.Même raison : ​ i= 0 quand , a créé construit à partir de un piècesziencheng0, ceLorsque le sous de entre dans Cheng , est toujours Vacontinuercontinuerexécuterligneboucleboucle. créé construit à partir deappartenait àpoursoi lui-même sous entre Cheng. Idem que  : Cela se produira également lorsque i=1...

Apprentissage recommandé : "Tutoriel vidéo PHP"

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer