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中对2个数组相加的函数
Jun 24 PHP
深入探讨PHP中的内存管理问题
Aug 31 PHP
php各种编码集详解和以及在什么情况下进行使用
Sep 11 PHP
PHP异步调用socket实现代码
Jan 12 PHP
php存储过程调用实例代码
Feb 03 PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
linux下安装php的memcached客户端
Aug 03 PHP
PHP获取youku视频真实flv文件地址的方法
Dec 23 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
Dec 31 PHP
php编程每天必学之表单验证
Mar 01 PHP
php实现微信企业转账功能
Oct 02 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生成便于打印的网页
2006/10/09 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
js自定义input文件上传样式
2018/10/26 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
Python os模块学习笔记
2015/06/21 Python
python如何定义带参数的装饰器
2018/03/20 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
python脚本开机自启的实现方法
2019/06/28 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
德国自行车商店:Tretwerk
2019/06/21 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
2014年两会学习心得体会
2014/03/10 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
学习保证书100字
2015/02/26 职场文书
投诉信格式范文
2015/07/02 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
导游词之江西赣州
2019/10/15 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书