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;
}
复制代码

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

posted @   李照耀  阅读(2481)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
历史上的今天:
2017-05-27 获取明天凌晨的时间戳
点击右上角即可分享
微信分享提示