解析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 相关文章推荐
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
PHP file_exists问题杂谈
May 07 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
Jun 20 PHP
PHP多进程编程实例
Oct 15 PHP
php通过Chianz.com获取IP地址与地区的方法
Jan 14 PHP
php简单socket服务器客户端代码实例
May 18 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
Referer原理与图片防盗链实现方法详解
Jul 03 PHP
Laravel基础-关于引入公共文件的两种方式
Oct 18 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
使用 php4 加速 web 传输
2006/10/09 PHP
深入分析PHP引用(&amp;)
2014/09/04 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
Windows下python3.7安装教程
2018/07/31 Python
python版百度语音识别功能
2019/07/09 Python
python中dict使用方法详解
2019/07/17 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
非常详细的C#面试题集
2016/07/13 面试题
生物制药专业求职信
2014/03/11 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
委托书怎样写
2014/08/30 职场文书
学校捐书倡议书
2015/04/27 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
Java 死锁解决方案
2022/05/11 Java/Android
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript