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 相关文章推荐
实用函数3
Nov 08 PHP
支持php4、php5的mysql数据库操作类
Jan 10 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
Zend Framework框架路由机制代码分析
Mar 22 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
降低PHP Redis内存占用
Mar 23 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 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
Windows下安装Memcached的步骤说明
2010/04/25 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
Require.js的基本用法详解
2017/07/03 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
pycharm远程开发项目的实现步骤
2019/01/20 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
python批量修改ssh密码的实现
2019/08/08 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
教师自我评价范文
2013/12/16 职场文书
和平主题的演讲稿
2014/01/12 职场文书
股权转让意向书
2014/04/01 职场文书
超市创业计划书
2014/04/24 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
见义勇为事迹材料
2014/12/24 职场文书
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript
Python+DeOldify实现老照片上色功能
2022/06/21 Python