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 相关文章推荐
PHP读写文件的方法(生成HTML)
Nov 27 PHP
php设计模式 Command(命令模式)
Jun 26 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
Aug 21 PHP
php快递单号查询接口使用示例
May 05 PHP
PHP使用CURL_MULTI实现多线程采集的例子
Jul 29 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
利用PHPExcel实现Excel文件的写入和读取
Apr 26 PHP
PHP递归实现汉诺塔问题的方法示例
Nov 25 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
php经典趣味算法实例代码
Jan 21 PHP
php输出形式实例整理
May 05 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 读取文件头判断文件类型的实现代码
2013/08/05 PHP
php的dl函数用法实例
2014/11/06 PHP
php7基于递归实现删除空文件夹的方法示例
2017/06/15 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
10个实用的脚本代码工具
2010/05/04 Javascript
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
python使用pil生成图片验证码的方法
2015/05/08 Python
python实现简易版计算器
2020/06/22 Python
用Python实现数据的透视表的方法
2018/11/16 Python
Python发展史及网络爬虫
2019/06/19 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
Django 开发环境配置过程详解
2019/07/18 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
python常用排序算法的实现代码
2019/11/08 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
如何清空python的变量
2020/07/05 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
大班下学期幼儿评语
2014/12/30 职场文书
法学专业求职信范文
2015/03/19 职场文书
中学音乐课教学反思
2016/02/18 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python