php多进程-创新互联

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数组就可以让主进程等候所有进程完结之后再结束了

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:php多进程-创新互联
URL分享:http://azwzsj.com/article/dppshj.html