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个人网站架设连环讲(三)
Oct 09 PHP
用PHP的ob_start() 控制您的浏览器cache
Aug 03 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
浅析php创建者模式
Nov 25 PHP
php短址转换实现方法
Feb 25 PHP
PHP创建PowerPoint2007文档的方法
Dec 10 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
Yii2 批量插入、更新数据实例
Mar 15 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
如何在PHP中使用AES加密算法加密数据
Jun 24 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
使用PHP批量生成随机用户名
2008/07/10 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
浅谈php和.net的区别
2014/09/28 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
JavaScript游戏之优化篇
2010/11/08 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
Pytest如何使用skip跳过执行测试
2020/08/13 Python
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
心理健康教育主题班会
2015/08/13 职场文书