php多进程操作类
2015-10-13 10:47
701 查看
<?php
$root_dir = dirname(__FILE__);
/**
* 多进程操作类
* Class FileOperation
*/
class MultipleProcesses{
/**
* 运行
* @param $data 数据【品牌数组】
* @param int $workers 进程熟
*/
function run($data, $workers=20) {
$max = count($data);
$pids = array();
for($i = 0; $i < $workers; $i++){
$pids[$i] = pcntl_fork();
switch ($pids[$i]) {
case -1:
echo "fork error : {$i} \r\n";
exit;
case 0:
$param = array(
'lastid' => $max / $workers * $i,
'maxid' => $max / $workers * ($i+1),
);
//$this->executeWorker($i, $param);//TODO 调用方法
exit;
default:
break;
}
}
foreach ($pids as $i => $pid) {
if($pid) {
pcntl_waitpid($pid, $status);
}
}
}//fun end
}//class end
$root_dir = dirname(__FILE__);
/**
* 多进程操作类
* Class FileOperation
*/
class MultipleProcesses{
/**
* 运行
* @param $data 数据【品牌数组】
* @param int $workers 进程熟
*/
function run($data, $workers=20) {
$max = count($data);
$pids = array();
for($i = 0; $i < $workers; $i++){
$pids[$i] = pcntl_fork();
switch ($pids[$i]) {
case -1:
echo "fork error : {$i} \r\n";
exit;
case 0:
$param = array(
'lastid' => $max / $workers * $i,
'maxid' => $max / $workers * ($i+1),
);
//$this->executeWorker($i, $param);//TODO 调用方法
exit;
default:
break;
}
}
foreach ($pids as $i => $pid) {
if($pid) {
pcntl_waitpid($pid, $status);
}
}
}//fun end
}//class end
相关文章推荐
- php使用 短信宝 发送短信(thinkphp)
- Thinkphp的学习——U函数的使用
- php 字符串转时间
- 安装PHP出现make: *** [sapi/cli/php] Error 1 解决办法
- phpstorm xdebug 调试配置
- [php] thinkphp使用csv导出excel表格
- php打开文件失败
- ThinkPHP技巧
- php如何向文件中写入换行
- PHP安装所最到的问题-解决方案
- TP的SDK的调用
- editplus 怎么替换为换行
- php打包文件夹成zip文件
- PHP基础
- 分享六:php脚本守护进程
- u-boot TFTP: 'Access violation' (2)
- php 多进程解决代码常驻内存的问题php 多进程解决代码常驻内存的问题
- 手动编译PHP
- PHP从头开始-3
- PHP:Fatal error: Class 'COM' not found in … 的处理办法