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 字符串 小常识
Jun 05 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
Feb 21 PHP
PHP explode()函数用法、切分字符串
Oct 03 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
PHP hex2bin()函数用法讲解
Feb 25 PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 PHP
PHP7 list() 函数修改
Mar 09 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 Xdebug的安装与使用详解
2013/06/20 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
生成二维码方法汇总
2014/12/26 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
python获取android设备的GPS信息脚本分享
2015/03/06 Python
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
Python使用Pygame绘制时钟
2020/11/29 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
物业电工岗位职责
2013/11/20 职场文书
中职生自荐信范文
2014/06/15 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
2014财务年度工作总结
2014/11/11 职场文书
病人慰问信范文
2015/02/15 职场文书
机器人总动员观后感
2015/06/09 职场文书
运动会开幕式主持词
2015/07/01 职场文书
Python可视化学习之seaborn调色盘
2022/02/24 Python
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技