php中pcntl_fork详解


Posted in PHP onApril 01, 2021

pcntl_fork()函数是php-pcntl模块中用于创建进程的函数。(不支持windows)

至于php_pcntl扩展如何安装开启这里就不介绍了,只分析pcntl_fork()这个函数本身。

$one = 123;
$one++;
$two = time();
$pid = [];
$pid = pcntl_fork();
$three = time();

当:pcntl_fork()函数执行的时候,会创建一个子进程。子进程会复制当前进程,也就是父进程的所有:数据,代码,还有状态。

1.当pcntl_fork()创建子进程成功后,在父进程内,返回子进程号,在子进程内返回0,失败则返回-1

2.子进程会复制父进程的代码,数据。那么就说明:子,父进程拥有的代码和数据会一模一样。

3.重点:子进程会复制父进程的状态,那么就有上面的示例代码:在第五行执行了pcntl_fork,那么创建出的子进程,代码也是从第五行开始执行的。又子进程复制了数据,代码。所以,在子进程内同理存在:$one,$two等变量

for ($i = 0; $i < 3; $i++) {
    $pid = pcntl_fork();
}
sleep(30);

那么:上面的for循环,实际会产生多少个子进程?答案是7个,在linux下,用ps命令将可以看到8个进程(1个父进程,7个子进程)
原因:父进程在 i = 0 时 , 创 建 出 一 个 子 进 程 0 , 此 时 的 子 进 程 , 还 会 继 续 执 行 循 环 。 创 建 出 属 于 自 己 的 子 进 程 。 同 理 : i=0时,创建出一个子进程0,此时的子进程,还会继续执行循环。创建出属于自己的子进程。同理: i=0时,创建出一个子进程0,此时的子进程,还会继续执行循环。创建出属于自己的子进程。同理:i=1时也会这样……

PHP 相关文章推荐
基于mysql的论坛(2)
Oct 09 PHP
php判断变量类型常用方法
Apr 24 PHP
百度ping方法使用示例 自动ping百度
Jan 26 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
ThinkPHP空模块和空操作详解
Jun 30 PHP
学习php中的正则表达式
Aug 17 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
在html文件中也可以执行php语句的方法
Apr 09 PHP
PHP处理会话函数大总结
Aug 05 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
May 08 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 PHP
php 解析非标准json、非规范json
Apr 01 #PHP
php 原生分页
Apr 01 #PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 #PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 #PHP
WordPress多语言翻译插件 - WPML使用教程
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
微信小程序和php的登录实现
Apr 01 #PHP
You might like
PHP无限分类的类
2007/01/02 PHP
PHP中文汉字验证码
2007/04/08 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
纯javascript实现自动发送邮件
2015/10/21 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
《javascript少儿编程》location术语总结
2018/05/27 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
Python深度优先算法生成迷宫
2018/01/22 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
墨西哥购物网站:Elektra
2020/01/21 全球购物
市场开发与营销专业求职信范文
2014/05/01 职场文书
患者身份识别制度
2015/08/06 职场文书
Python中相见恨晚的技巧
2021/04/13 Python
python装饰器代码解析
2022/03/23 Python
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis