php pcntl的用法:首先创建一个PHP示例文件;然后使用PCNTL系列的函数处理一个事务;最后通过一个“$pids”数组让主进程等候所有进程完结之后再结束即可。
php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
PHP的pcntl多进程用法实例
这篇文章主要介绍了PHP的pcntl多进程用法,实例分析了pcntl操作多进程的使用技巧,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了PHP的pcntl多进程用法。分享给大家供大家参考。具体分析如下:
PHP使用PCNTL系列的函数也能做到多进程处理一个事务。比如我需要从数据库中获取80w条的数据,再做一系列后续的处理,这个时候,用单进程?你可以等到明年今天了。所以应该使用pcntl函数了。
假设我想要启动20个进程,将1-80w的数据分成20份来做,主进程等待所有子进程都结束了才退出:
$max = 800000;$workers = 20;$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($input, $output, $param);exit;default:break;}}foreach ($pids as $i => $pid) {if($pid) {pcntl_waitpid($pid, $status);}}
登录后复制
这里当pcntl_fork出来以后,会返回一个pid值,这个pid在子进程中看是0,在父进程中看是子进程的pid(>0),如果pid为-1说明fork出错了。
使用一个$pids数组就可以让主进程等候所有进程完结之后再结束了
【推荐学习:PHP视频教程】
以上就是php pcntl用法的详细内容,更多请关注php中文网其它相关文章!