我花了数小时、数天、数周试图了解 PHP pcntl 的真正工作原理,但仍然不知道到底发生了什么。
为什么是父母和孩子?我正在使用 Debian(我必须承认我是计算机专家),但我想做的只是从我的 webSocket 客户端(我已经设法做到)接收消息并继续倾听其他用户。
换句话说,如果我收到一条消息并使用 a ,sleep(5);
那么在这段代码完成之前,服务器将不会监听任何其他消息。
请注意,这sleep(5)
是出于测试目的。我计划同时处理数百条消息,这就是为什么我试图弄清楚如何能有所帮助pcntl
。
$pid = pcntl_fork();
echo "start\n";
if($pid) {
// parent process runs what is here
echo "parent\n";
}
else {
// child process runs what is here
echo "child\n";
}
echo "end\n";
上述脚本背后究竟发生了什么?为什么我会得到这个结果?
开始
父母
结尾
开始
孩子
结尾
有人可以解释一下计算机“在想什么”吗?