fork父子进程执行顺序


使用一段代码来检查父子进程执行顺序

<?php
$str = "hello world!" . PHP_EOL;
// 派生一个子进程,子进程会复制主进程中的上下文
// pcntl_fork 函数在主进程中返回子进程的进程ID,在子进程返回0,失败在主进程返回-1
$pid = pcntl_fork();
// 这里开始的代码,会被主进程、子进程共同执行
echo $str;
if($pid > 0) {
    echo "我是主进程,我的pid是" . getmypid() . ' -- 子进程的pid是 ' . $pid . PHP_EOL;
    echo "我要先休息2秒" . PHP_EOL;
    sleep(2);
    echo "2秒到了,主进程休息完成!主进程结束!" . PHP_EOL;
} elseif($pid == 0) {
    echo "我是子进程,我的pid是". getmypid() . PHP_EOL;
    echo "我只休息1秒" . PHP_EOL;
    sleep(1);
    echo "1秒到了,子进程休息完成!子进程结束!" . PHP_EOL;
}else{
    echo "我是主进程,开启子进程失败" . PHP_EOL;
}

 如果不休息的话,父进程执行完毕,开始子进程,所以可以用这样的方法使得父进程等子进程执行完毕自己再结束


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM