pcntl_fock & pcntl_waitpid 初学

下面是我的代码段

<?php
/**
 * Created by PhpStorm.
 * User: lipeiran
 * Date: 2017/2/10
 * Time: 下午3:51
 */
/*
$a = 3;
$pids= array(); // 进程PID数组
for($i = 0;$i<2;$i++)
{
   $pids[$i] = pcntl_fork();// 产生子进程,而且从当前行之下开试运行代码,而且不>继承父进程的数据信息
   echo " start ".$pids[$i]." a is ".$a."\n";
   if(!$pids[$i])
   {
       exit(0);
   }
//   echo " end ".$pids[$i]."\n";
}
*/

for ($i = 1; $i <= 5; ++$i) {
    $pid = pcntl_fork();

    if (!$pid) {
        sleep(1);
        print "In child $i\n";
        exit($i);
    }
    else{
        echo "this in for main $i\n";
    }
}
    if(!$pid){
        echo "out is child \n";
    }
    else{
        echo "this is mainProcess \n";
    }

    while (pcntl_waitpid(0, $status) != -1) {
        $status = pcntl_wexitstatus($status);
        echo "Child $status completed\n";
};

http://www.php.net/manual/zh/function.pcntl-fork.php 这个上面好多可以看的讲解,以及代码段

这个代码段说明,每次fock以后主进程&子进程都会执行for循环里面的代码,而只有主进程执行for之外的代码,而且通过waitpid来监控子进程的状态。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值