php多进程操作类

<?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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值