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 相关文章推荐
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
php对gzip文件或者字符串解压实例参考
Jul 25 PHP
php不用正则验证真假身份证
Nov 06 PHP
php程序员应具有的7种能力小结
Nov 27 PHP
实现PHP+Mysql无限分类的方法汇总
Mar 02 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
php pdo oracle中文乱码的快速解决方法
May 16 PHP
php时间函数用法分析
May 28 PHP
php微信公众平台配置接口开发程序
Sep 22 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 PHP
php文件上传原理与实现方法详解
Dec 20 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,不用COM,生成excel文件
2006/10/09 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
javascript new一个对象的实质
2010/01/07 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
Python实现处理管道的方法
2015/06/04 Python
详解python之简单主机批量管理工具
2017/01/27 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
python使用代理ip访问网站的实例
2018/05/07 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Python多线程获取返回值代码实例
2020/02/17 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
python 实现的车牌识别项目
2021/01/25 Python
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
社团文化节邀请函
2014/01/10 职场文书
师德师风个人反思
2014/04/28 职场文书
2016银行求职自荐信
2016/01/28 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
浅谈JS的原型和原型链
2021/06/04 Javascript
MySql数据库 查询时间序列间隔
2022/05/11 MySQL