job($i); // 把结果写入管道 $worker->write($res); }, true); // 启动进程,返回进程号 $pid = $process->start(); $this->worker[$pid] = $process; } // 显示主程序结束时间 echo 'process-end-time:' . date('Y-m-d H:i:s') . PHP_EOL; } /** * 显示进程结果 */ public function getChannelResponse() { foreach ($this->worker as $worker) { // 通过读取每个管道中的结果来进行显示 echo $worker->read(); } } /** * 进程工作逻辑,模拟耗时1s的任务 * @param int $i * @return string */ protected function job(int $i) { sleep(1); return "job {$i} success" . PHP_EOL; } } $pro = new process(); $pro->doJob(); $pro->getChannelResponse();