1.PHP popen如何實現多進程並發執行,循環裡的pclose會等待進程完畢再進行下一次循環
2.假設有17個進程要開啟,如何實現每次啟動5個進程,並且每完成一個進程就關閉一個進程,同時開啟下一個進程,也就是說最多只有5個進程同時執行
<code>//启动2个进程 for($i = 0;$i < 2;$i++){ $command = "$phpPath $destPHPFile >> $logFile$i"; echo "进程开启时间".date('Y-m-d H:i:s')."\n"; $resource = popen($command,'r'); if(is_resource($resource)){ $success++; pclose($resource);//下一次循环会等待上一个进程执行完毕,pclose才会释放资源 echo date('Y-m-d H:i:s')." 进程:".$i."启动完毕,执行完毕并关闭,开启下一个进程\n"; }else{ $failure++; } }</code>
這樣的做法相當於每次啟動一個進程,循環執行,相當於單一進程處理任務,如何做到多進程
1.PHP popen如何實現多進程並發執行,循環裡的pclose會等待進程完畢再進行下一次循環
2.假設有17個進程要開啟,如何實現每次啟動5個進程,並且每完成一個進程就關閉一個進程,同時開啟下一個進程,也就是說最多只有5個進程同時執行
<code>//启动2个进程 for($i = 0;$i < 2;$i++){ $command = "$phpPath $destPHPFile >> $logFile$i"; echo "进程开启时间".date('Y-m-d H:i:s')."\n"; $resource = popen($command,'r'); if(is_resource($resource)){ $success++; pclose($resource);//下一次循环会等待上一个进程执行完毕,pclose才会释放资源 echo date('Y-m-d H:i:s')." 进程:".$i."启动完毕,执行完毕并关闭,开启下一个进程\n"; }else{ $failure++; } }</code>
這樣的做法相當於每次啟動一個進程,循環執行,相當於單一進程處理任務,如何做到多進程