Bonsoir,
mon probleme :
j'ai un tableau de valeur ID
je dois utilisé n processus pour parcourir ce tableau , recupere ID ( en le dépilant du tableau et bloquer les autre processus pour ne pas avoir le meme ID traité).
chaque processus devra effectué le meme travail avec les ID.
bref voila ou j'en suis :
le tableau de base qui doit servir a chaque proc est bien rempli.
$Tableau = array(1,2,3,4,5,6,7,8,9,10); // exemple bidon pour vous expliquer
function sig_handler est bien defini
maintenant j aimerais executer mes proc tant que mon tableau n'est pas vide
ca c'est le code avec lesquel je dois bosser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 while(count($Tableau)>0){ $pid = pcntl_fork(); if($pid == -1) { // Impossible de forker ... die("Impossible de me forker!"); } elseif($pid) { // Nous sommes le parent array_push($Enfants, $pid); } else { // nous sommes le processus enfant, lancement de la boucle de traitement FunctionSpecial(); exit(); } }
pour pas que les processus puisse recup le meme ID , je pensais declarer un tableau avec les pid des proc en key et pour valeur l'ID recup de $Tableau.
et ce tableau commun serais en memoire partagé sur les enfants.
et du coté du parent, quand il voit qu un enfant a fini et aurait donc viré son ID du tableau partagé , il dépilerais une valeur du $Tableau et l"insererais ds la tableau partagé.
bon c'est une idée
je suis un peu pommé.
si vous pouviez m'aidez a résoudre ce prob qui est que n processus doivent traiter les valeur d'un meme array
Partager