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框架的性能
Jan 10 PHP
PHP获取当前文件所在目录 getcwd()函数
May 13 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
Apr 12 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
php页面防重复提交方法总结
Nov 25 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 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不允许用户提交空表单(php空值判断)
2013/11/12 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
javascript比较文档位置
2008/04/08 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
Python实现区域填充的示例代码
2021/02/03 Python
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
学生实习推荐信范文
2013/11/26 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
停发工资证明范本
2015/06/12 职场文书
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers