PHP多进程简单实例小结


Posted in PHP onNovember 09, 2019

本文实例讲述了PHP多进程。分享给大家供大家参考,具体如下:

PHP创建多进程需要使用到pcntl模块 在编译时加上--enable-pcntl打开进程控制支持,不是Unix类系统不支持此模块

php官网介绍http://php.net/manual/zh/book.pcntl.php,创建子进程需要使用到pcntl_fork(),文档上介绍该函数说 ,pcntl_fork — 在当前进程当前位置产生分支(子进程)。

译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程号,而子进程得到的是0。失败时,在 父进程上下文返回-1,不会创建子进程,并且会引发一个PHP错误。

<?php
  $pid = pcntl_fork();
  var_dumP($pid);
?>

运行上面面代码,会返回两个值,一个是0和子进程的PID;

<?php
  $i=0;
  while($i!=5){
     $pid = pcntl_fork();
     echo "进程ID:".$pid."==".$i++.PHP_EOL;
  }   
?>

运行上面程序发现进程数指数增长 刚好是2^5=32个;原因是每一条都执行了while循环,到最后成了进程的指数增长——也就是说fork的时候把while循环也带了进去,父进程在执行fork的过程中;会得到子进程的进程号

而子进程会的得到是0;意味着0就是子进程标志;改正后代码是这样的

<?php
  $i=0;
  while($i!=5){
  $pid = pcntl_fork();
  echo "进程ID:".$pid."==".$i++.PHP_EOL;
  if ($pid == 0) {
  //code
  exit(0);
  }
  }
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php中的观察者模式
Mar 24 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
PHP获取文件行数的方法
Jun 10 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
safari下载文件自动加了html后缀问题
Nov 09 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 PHP
PHPUnit + Laravel单元测试常用技能
Nov 06 #PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 #PHP
基于thinkphp6.0的success、error实现方法
Nov 05 #PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 #PHP
详解Laravel服务容器的绑定与解析
Nov 05 #PHP
php+laravel依赖注入知识点总结
Nov 04 #PHP
PHP保存Base64图片base64_decode的问题整理
Nov 04 #PHP
You might like
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
2014/06/16 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
在Python的Django框架中创建和使用模版
2015/07/15 Python
Python的mysql数据库的更新如何实现
2017/07/31 Python
python实现括号匹配的思路详解
2018/08/23 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
Numpy之reshape()使用详解
2019/12/26 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
学习python需要有编程基础吗
2020/06/02 Python
为什么称python为胶水语言
2020/06/16 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
南京软件公司的.net程序员笔试题
2014/08/31 面试题
超市营业员求职简历的自我评价
2013/10/17 职场文书
便利店投资创业计划书
2014/02/08 职场文书
毕业晚会主持词
2014/03/24 职场文书
校园文明标语
2014/06/13 职场文书
相亲活动方案
2014/08/26 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
Mysql中mvcc各场景理解应用
2022/08/05 MySQL