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 socke 向指定页面提交数据
Jul 23 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
PHP 工厂模式使用方法
May 18 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
Linux下php5.4启动脚本
Aug 03 PHP
Laravel框架中扩展函数、扩展自定义类的方法
Sep 04 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
Thinkphp实现站点静态化的方法详解
Mar 21 PHP
php格式文件打开的四种方法
Feb 24 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 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中的MVC模式运用技巧
2007/05/03 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
javascript中的几个运算符
2007/06/29 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
2018/01/30 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
python自定义类并使用的方法
2015/05/07 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
python Django批量导入数据
2016/03/25 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
后勤人员自我鉴定
2013/10/20 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
期末考试复习计划
2015/01/19 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
springboot入门 之profile设置方式
2022/04/04 Java/Android