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 相关文章推荐
初学CAKEPHP 基础教程
Nov 02 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
Feb 17 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
Jun 18 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
Nov 22 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
php socket通信简单实现
Nov 18 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
laravel migrate初学常见错误的解决方法
Oct 11 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 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中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
动态表格Table类的实现
2009/08/26 Javascript
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
js实现文字截断功能
2016/09/14 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
Python中关键字is与==的区别简述
2014/07/31 Python
Python中super的用法实例
2015/05/28 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
python将数组n等分的实例
2019/12/02 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
Python eval函数原理及用法解析
2020/11/14 Python
大学生入党自我鉴定
2013/10/31 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL