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+DBM的同学录程序(3)
Oct 09 PHP
PHP6 先修班 JSON实例代码
Aug 23 PHP
超级简单的php+mysql留言本源码
Nov 11 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
php 数组使用详解 推荐
Jun 02 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 PHP
stripos函数知识点实例分享
Feb 11 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
基于PHP实现发微博动态代码实例
Dec 11 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 Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
php字符串分割函数用法实例
2015/03/17 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
jquery ready()的几种实现方法小结
2010/06/18 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
jquery处理json对象
2014/11/03 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
python实现合并两个排序的链表
2019/03/03 Python
安装docker-compose的两种最简方法
2019/07/30 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
最新大学职业规划书范文
2013/12/30 职场文书
公证委托书
2014/08/01 职场文书
幼儿园六一亲子活动方案
2014/08/26 职场文书
党员争先创优承诺书
2015/01/20 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers
分享几个简单MySQL优化小妙招
2022/03/31 MySQL