当前这种方法,只输出一个子进程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
扩展的命令行环境中运行这段代码才能看到预期的输出。解决 无用评论 打赏 举报
悬赏问题
- ¥20 关于web前端如何播放二次加密m3u8视频的问题
- ¥20 spring boot集成mqtt的使用问题
- ¥15 使用百度地图api 位置函数报错?
- ¥15 metamask如何添加TRON自定义网络
- ¥66 关于川崎机器人调速问题
- ¥15 winFrom界面无法打开
- ¥30 crossover21 ARM64版本安装软件问题
- ¥15 mymetaobjecthandler没有进入
- ¥15 mmo能不能做客户端怪物
- ¥15 osm下载到arcgis出错