首页 > 学院 > 开发设计 > 正文

pcntl_fock & pcntl_waitpid 初学

2019-11-09 14:47:07
字体:
来源:转载
供稿:网友

下面是我的代码段

<?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来监控子进程的状态。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表