Как присоединиться к разветвленным процессам в php
Где мне нужно развить процесс. Затем, когда их задача завершается, родительский процесс должен продолжить работу и выполнить другую работу. Как это может быть сделано? Вот что я сделал
$sql = "call some_sample_proc()";
$res = $dbConn->query($sql);
$i=0;
$memcacheData = array();
while($row = $dbConn->fetch_assoc()) {
$value = $row['col1'].$row['col2'].$row['col3'];
$memcachceData[$i++] = $value;
}
for($i=0; $i<5; $i++) {
$pid = pcntl_fork();
if($pid == 0) {
$im = $i;
echo "forked process $i \n"; // -- 1
exit;
} else if($pid == -1) {
echo "Could not fork \n";
}
}
while (pcntl_waitpid(0, $status) != -1) {
$status = pcntl_wexitstatus($status);
echo "Child $status completed $im\n ";
$childCompleteCount ++;
}
echo "completion count $childCompleteCount\n";
if($childCompleteCount == 5) {
echo "All finished\n";
//exit; //if this is uncommented, ONLY THEN the program finishes
}
Когда я выполняю программу с этим фрагментом кода, я получаю этот вывод...
forked process 0
forked process 1
forked process 3
forked process 2
forked process 4
Child 0 completed 0
Child 0 completed 0
Child 0 completed 0
Child 0 completed 0
Child 0 completed 0
completion count 5
All finished
Но после завершения печати программа 5 кажется зависает. Он не возвращается к подсказке. Итак, теперь, когда мы понимаем, что все дочерние (разветвленные) процессы завершены, как нам возобновить дальнейшее выполнение?