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 循环列出目录内容的函数代码
May 26 PHP
基于PHP生成静态页的实现方法
May 10 PHP
深入php常用函数的使用汇总
Jun 08 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
smarty实现多级分类的方法
Dec 05 PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 PHP
php计算指定目录下文件占用空间的方法
Mar 13 PHP
100多行PHP代码实现socks5代理服务器[2]
May 05 PHP
Yii框架组件和事件行为管理详解
May 20 PHP
php实现评论回复删除功能
May 23 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP中用Trait封装单例模式的实现
Dec 18 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.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
python Django模板的使用方法
2016/01/14 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
Python替换月份为英文缩写的实现方法
2019/07/15 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
存储过程的优点有哪些
2012/09/27 面试题
农民入党思想汇报
2014/01/03 职场文书
安全横幅标语
2014/06/09 职场文书
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL