解析PHP实现多进程并行执行脚本


Posted in PHP onJune 18, 2013

由于php的进程是不支持多线程的,有些场景为了方便以及提高性能,可以用php实现多进程以弥补这个不足:

#!/usr/bin/env php
<?php
$cmds=array(
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php','mobile',1),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php','mobile',2),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php','click',1),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php','click',2),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php',1),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php',2)
);
foreach($cmds as $cmd){
        $pid=pcntl_fork();
        if($pid==-1){ //进程创建失败
                die('fork child process failure!');
        }
        else if($pid){ //父进程处理逻辑
                pcntl_wait($status,WNOHANG);
        }
        else{ //子进程处理逻辑
                pcntl_exec('/usr/local/bin/php',$cmd);
        }
}

PHP 相关文章推荐
PHP 实用代码收集
Jan 22 PHP
php strrpos()与strripos()函数
Aug 31 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
PHP异常处理Exception类
Dec 11 PHP
php array_keys 返回数组的键名
Oct 25 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
Dec 08 PHP
关于ThinkPHP中的异常处理详解
May 11 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 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
You might like
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
在vue项目中,使用axios跨域处理
2018/03/07 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
django中的图片验证码功能
2019/09/18 Python
python的等深分箱实例
2019/11/22 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
用python写爬虫简单吗
2020/07/28 Python
行政助理岗位职责
2013/11/10 职场文书
结婚喜宴家长答谢词
2014/01/15 职场文书
安全横幅标语
2014/06/09 职场文书
英语系本科生求职信
2014/07/15 职场文书
大学生入党群众意见书
2015/06/02 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python