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编写PDF文档生成器
Oct 09 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
Jul 01 PHP
PHP中strtr字符串替换用法详解
Nov 26 PHP
php代码架构的八点注意事项
Jan 25 PHP
php实现按天数、星期、月份查询的搜索框
May 02 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
PHP实现生成数据字典功能示例
May 24 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 PHP
php适配器模式简单应用示例
Oct 23 PHP
laravel 实现用户登录注销并限制功能
Oct 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
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
Python生成随机数的方法
2014/01/14 Python
python3简单实现微信爬虫
2015/04/09 Python
Django中间件实现拦截器的方法
2018/06/01 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
潘婷洗发水广告词
2014/03/14 职场文书
村庄绿化方案
2014/05/07 职场文书
物业管理专业求职信
2014/06/11 职场文书
优秀员工自荐书
2015/03/06 职场文书
电影雷锋观后感
2015/06/10 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript