情况一
<?php
$count = 10;
for ($i=0; $i < 2; $i++){
$pid = pcntl_fork();
if($pid == 0){
$count += 1;
}else{
$count *= 10;
}
}
fprintf(STDOUT, "pid = %d , count = %d \n", posix_getpid(), $count);
/**
* 1.文件开始执行
* 2.第4行创建 创建子进程 child 1 $count=10 $i=0
* child 1 继续执行 $count=11 $i=1
* 创建 child 3 $count=12 $i=2 输出 次序4
* child 1 继续执行 $count=110 $i=2 输出 次序2
* 3.父进程继续执行 $count=100 $i=1
* 创建 child 2 $count=101 $i=2 输出 次序3
* 4.父进程 $count=1000 $i=2 输出 次序1
*/
情况二
<?php
$count = 10;
for ($i=0; $i < 2; $i++){
$pid = pcntl_fork();
if($pid == 0){
$count += 1;
}else{
$count *= 10;
break;
}
}
fprintf(STDOUT, "pid = %d , count = %d \n", posix_getpid(), $count);
/**
* 1.文件开始执行
* 2.第4行创建 创建子进程 child 1 $count=10 $i=0
* child 1 继续执行 $count=11 $i=1
* 创建 child 2 $count=12 $i=2 输出 次序3
* child 1 继续执行 $count=110 $i=2 次序2
* 3.父进程继续执行 $count=100 $i=1
* break 运行结束 $count=100 $i=1 输出 次序1
*/