【发布时间】:2012-06-08 10:29:56
【问题描述】:
我想运行并行进程以同时处理至少 4 个用户。
ob_end_flush();
for($i = 0; $i < 4; $i++)
{
$pid=pcntl_fork();
if ($pid == -1) {
echo("Could not create a new child.");
exit;
} else if ($pid == 0) {
//This will get excuted only in the child process
echo 'parent1';
sleep(5);
echo 'parent2';
exit;
}
}
输出是这样的:
> php testscript.php
parent1
parent1
parent1
parent1
> parent2
parent2
parent2
parent2
当前发生的情况是在显示parent1 4 次后,对脚本的控制丢失,并启动了一个新的空命令行。再等 5 秒后,剩下的输出来了。
我怎样才能避免这种情况发生。我希望能够在我想要的时候打破脚本。
编辑
如果我通过终端发送信号,比如按 CTRL+C,脚本不会停止,需要一种方法来通知脚本在那个时刻停止。
【问题讨论】:
-
您的“想要”的脑电波是如何转移到 PHP 脚本的?我不知道存在脑电波库。你能详细说明一下吗,看起来是一个非常酷的扩展,每个人都应该知道。
-
修改了问题。要求是让php脚本监听终端睡眠后发送的信号。