PHP实现多进程并行操作的详解(可做守护进程)


Posted in PHP onJune 18, 2013

如下所示:

/**
 * 入口函数
 * 将此文件保存为 ProcessOpera.php
 * 在terminal中运行 /usr/local/php/bin/php ProcessOpera.php &
 * 查看进程 ps aux|grep php
 */
ProcessOpera("runCode", array(), 8);/**
 * run Code
 */
function runCode($opt = array()) {
   //需要在守护进程中运行的代码
}
/**
 * $func为子进程执行具体事物的函数名称
 * $opt为$func的参数 数组形式
 * $pNum 为fork的子进程数量
 */
function ProcessOpera($func, $opts = array(), $pNum = 1) {
while(true) {
$pid = pcntl_fork();
if($pid == -1) {
exit("pid fork error");
}  
if($pid) {
static $execute = 0;
$execute++;
if($execute >= $pNum) {
pcntl_wait($status);
$execute--;
}  
} else {
while(true) {
//somecode
$func($opts);
sleep(1);
}  
exit(0);
}  
}  
}
PHP 相关文章推荐
PHP新手上路(四)
Oct 09 PHP
PHP实时显示输出
Oct 02 PHP
实用PHP会员权限控制实现原理分析
May 29 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
Aug 21 PHP
php查找字符串出现次数的方法
Dec 01 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php制作动态随机验证码
Feb 12 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 PHP
php json转换相关知识(小结)
Dec 21 PHP
解析php中static,const与define的使用区别
Jun 18 #PHP
解析htaccess伪静态的规则
Jun 18 #PHP
解析php中const与define的应用区别
Jun 18 #PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
Jun 18 #PHP
解析php中memcache的应用
Jun 18 #PHP
PHP实现的封装验证码类详解
Jun 18 #PHP
php empty()与isset()区别的详细介绍
Jun 17 #PHP
You might like
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
浅谈js原生拖放
2016/11/21 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
vue-axios使用详解
2017/05/10 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
python赋值操作方法分享
2013/03/23 Python
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Python 12306抢火车票脚本
2018/02/07 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
美国旅游网站:Tours4Fun
2017/02/17 全球购物
印尼旅游网站:via
2017/11/12 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
J2EE是技术还是平台还是框架
2016/08/14 面试题
金融专业个人的自我评价
2013/10/18 职场文书
车间班长岗位职责
2013/11/30 职场文书
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android