php完成多过程的办法:起首开启pcntl扩大;而后用array_chunk函数把指定命组切割为每一500个元素一个数组;接着进行父过程逻辑解决和子过程解决;最初期待子过程执行完结便可。
保举:《PHP视频教程》
php多过程完成
当一个过程执行工夫过长,需求是用多过程合成义务,缩短顺序执行工夫
pcntl是php的一个多过程扩大,pcntl是process control的缩写
上面简略讲下pcntl完成多过程的形式。
pcntl_fork — 正在以后过程以后地位孕育发生分支(子过程)。译注:fork是创立了一个子过程,父过程以及子过程 都从fork的地位开端向下持续执行,没有同的是父过程执行进程中,失去的fork前往值为子过程 号,而子过程失去的是0。
例子:
$habit_class这个数组有5000条数据,以是先用array_chunk函数把该数组切割为每一500个元素一个数组。 $habit_class = array_chunk($habit_class,500,true); foreach($habit_class as $k2=>$v2){ $pid = pcntl_fork(); if ($pid == -1) { die("could not fork"); } elseif ($pid) { //这里是父过程逻辑解决,父过程会前往子过程的pid; } else {// 子过程解决,子过程前往的pid未0; foreach($v2 as $k=>$v){ //进行详细营业解决 } } exit;// 肯定要留意加入子过程,不然pcntl_fork() 会被子过程再fork,带来解决上的影响。 } } // 期待子过程执行完结 while (pcntl_waitpid(0, $status) != -1) { $status = pcntl_wexitstatus($status); //echo "Child $status completed\n"; }
以上就是php 若何完成多过程的具体内容,更多请存眷资源魔其它相干文章!
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!