Explication détaillée de pcntl_fork en php

醉折花枝作酒筹
Libérer: 2023-03-09 15:54:01
avant
2007 Les gens l'ont consulté

Cet article vous présentera « pcntl_fork » en php. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Explication détaillée de 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();
Copier après la connexion

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.

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é en cas d'échec

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

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 créer Le sous-processus du code 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 autres variables

for ($i = 0; $i < 3; $i++) {
    $pid = pcntl_fork();
}
sleep(30);
Copier après la connexion

Ensuite : combien de processus enfants seront réellement générés par la boucle for ci-dessus ? La réponse est 7. Sous Linux, vous pouvez utiliser la commande ps pour voir 8 processus (1 processus parent, 7 processus enfants)

Raison : Lorsque i = 0, le processus parent crée un processus enfant 0, le Le processus enfant à ce moment continuera à exécuter la boucle. Créez votre propre processus enfant. De la même manière : lorsque i=0, un processus enfant 0 est créé. A ce moment, le processus enfant continuera à exécuter la boucle. Créez votre propre processus enfant. De la même manière : lorsque i=0, un processus enfant 0 est créé. A ce moment, le processus enfant continuera à exécuter la boucle. Créez votre propre processus enfant. De la même manière : 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!

Étiquettes associées:
source:csdn.net
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!