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 - Html Transfer Code
Oct 09 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
第4章 数据处理-php数组的处理-郑阿奇
Jul 04 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
Laravel 5框架学习之表单
Apr 08 PHP
PHP实现生成唯一会员卡号
Aug 24 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
Linux下快速搭建php开发环境
Mar 13 PHP
PHP多维数组排序array详解
Nov 21 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
php生成静态页面并实现预览功能
Jun 27 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
php下检测字符串是否是utf8编码的代码
2008/06/28 PHP
discuz Passport 通行证 整合笔记
2008/06/30 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python适合人工智能的理由和优势
2019/06/28 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
辅导员评语
2014/05/04 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
毕业设计致谢语
2015/05/14 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书