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 相关文章推荐
允许phpmyadmin空密码登录的配置方法
May 29 PHP
phpmyadmin打开很慢的解决方法
Apr 21 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
Smarty模板引擎缓存机制详解
May 23 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
php校验公钥是否可用的实例方法
Sep 17 PHP
laravel框架查询数据集转为数组的两种方法
Oct 10 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 30 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面向对象编程快速入门
2006/12/14 PHP
php下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
php FPDF类库应用实现代码
2009/03/20 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
python爬虫的工作原理
2017/03/05 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
Python设计模式之职责链模式原理与用法实例分析
2019/01/11 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
使用python实现飞机大战游戏
2020/03/23 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
什么是数据抽象
2016/11/26 面试题
婚礼证婚人演讲稿
2014/09/13 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
工作失误检讨书
2015/01/26 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
优质护理服务心得体会
2016/01/22 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
《山中访友》教学反思
2016/02/24 职场文书
医学会议开幕词
2016/03/03 职场文书