当前这种方法,只输出一个子进程0,请问是哪里有问题吗
1条回答 默认 最新
- JPCstorm 2023-08-03 17:36关注
$workers = 10; $pids = array(); for ($i = 0; $i < $workers; $i++) { $pids[$i] = pcntl_fork(); switch ($pids[$i]) { case -1: echo "fork error : {$i}\n"; exit; case 0: echo "子进程{$i}\n"; exit; default: break; } } foreach ($pids as $i => $pid) { if ($pid) { pcntl_waitpid($pid, $status); } }
这段代码会创建10个子进程,并在每个子进程中打印出一个消息。然后,主进程会等待所有子进程结束。
如果你仍然只看到一个子进程的输出,那可能是因为你的环境不支持
pcntl_fork()
函数。pcntl_fork()
函数在某些系统(例如Windows)或者某些PHP的配置(例如在Web服务器环境中)下是不可用的。你需要在支持pcntl
扩展的命令行环境中运行这段代码才能看到预期的输出。解决 无用评论 打赏 举报
悬赏问题
- ¥15 虚拟机vmnet8 nat模式可以ping通主机,主机也能ping通虚拟机,但是vmnet8一直未识别怎么解决,其次诊断结果就是默认网关不可用
- ¥20 求各位能用我能理解的话回答超级简单的一些问题
- ¥15 yolov5双目识别输出坐标代码报错
- ¥15 这个代码有什么语法错误
- ¥15 给予STM32按键中断与串口通信
- ¥15 使用QT实现can通信
- ¥15 关于sp验证的一些东西,求告知如何解决,
- ¥35 关于#javascript#的问题:但是我写的只能接码数字和字符,帮我写一个解码JS问题
- ¥15 prophet运行报错,如何解决?
- ¥15 用GPU跑pytorch搭建的LSTM的时候出现了奇怪的报错