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 jquery 实现新闻标签分类与无刷新分页
Dec 18 PHP
PHP 飞信好友免费短信API接口开源版
Jul 22 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
Nov 01 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
php多维数组去掉重复值示例分享
Mar 02 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
php 实现进制相互转换
Apr 07 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 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
Protoss兵种对照表
2020/03/14 星际争霸
JAVA/JSP学习系列之六
2006/10/09 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
两个数组去重的JS代码
2013/12/04 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
再谈JavaScript线程
2015/07/10 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
小学英语课后反思
2014/04/26 职场文书
网站创业计划书
2014/04/30 职场文书
民主生活会剖析材料
2014/09/30 职场文书
教师党员承诺书2015
2015/01/21 职场文书
教代会开幕词
2015/01/28 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏