php 多进程
admin
2023-06-22 13:42:01
0

PHP使用PCNTL系列的函数也能做到多进程处理一个事务。比如我需要从数据库中获取80w条的数据,再做一系列后续的处理,这个时候,用单进程?你可以等到明年今天了。。。所以应该使用pcntl函数了。


必须在php+msyql+apache+linux即lamp环境下,否则会出现函数未定义的错误。


假设我想要启动20个进程,将1-80w的数据分成20份来做,主进程等待所有子进程都结束了才退出。


 $max / $workers * $i,
                'maxid' => $max / $workers * ($i+1),
            );
            $this->executeWorker($input, $output, $param);
            exit;
        default:
            break;
    }
}
 
foreach ($pids as $i => $pid) {
    if($pid) {
        //pcntl_waitpid($pid, $status);
        pcntl_wait($status, WNOHANG);
    }
}
?>



这里当pcntl_fork出来以后,会返回一个pid值,这个pid在子进程中看是0,在父进程中看是子进程的pid(>0),如果pid为-1说明fork出错了。

使用一个$pids数组就可以让主进程等候所有进程完结之后再结束了


相关内容

热门资讯

稻城亚丁景区封堵省道收费,官方... 四川甘孜州发展和改革委员会今日发布通告:按照文化和旅游部通报亚丁景区摆渡车问题整改要求,根据甘孜州稻...
告诉一下新飞冰箱售后没有修好冰... 最佳回答 对于新飞冰箱的售后有以下几种解决方法,一是如果你家的新飞冰箱是第一次维修之后没有修好的话,...
冰箱密封条不严怎么办?冰箱密封...   1、热水浸泡  冰箱密封条变形了,建议将其拆卸,把变形的部分放进热水中浸泡,大概十分钟,密封条在...
中央空调室内机内有滴水声音正常... 1、有滴水声音是不正常的,如果中央空调在安装时四壁连接不平整、不密封,或者出风口比室内积水槽低等等都...
热水器水管内有泡沫怎么办 当热水器水管出现泡沫时,这通常是由于热水器的功能故障所引起的。泡沫可能是形成在管道内部的空气或气体,...
冰箱维修加氟后压缩机运转不能回... 冰箱缺氟与否万不可以压力或电流为准,应以压缩机回气管或排气管的温度现象为准。用手触摸回气管,大约为零...
四川甘孜:提级整治稻城亚丁景区... 近期,稻城亚丁景区因被文化和旅游部点名通报、质疑违规封堵省道收费、限制社会车辆进入等问题,引发广泛关...
“平台”上线“清单”呈现 扬州... 5月22日,扬州举办以“算力共同体,AI新纪元”为主题的AI算力生态大会。AI算力生态大会聚焦AI算...
200亿美元、三阶段,NASA... 来源:市场资讯 (来源:第一财经资讯) 美国国家航空航天局(NASA)于当地时间周三(5月27日)正...
百度今年持续加码招AI人才,背... 【百度今年持续加码招AI人才,背后藏着一场更大的组织实验】 如果你留意百度最近的动作,会发现一个很明...