其实我们更多时候使用while(1)作为守护进程,帮我们处理更多的事情
测试while(1)
使用php为例
$i = 1;
$time = time();
while(1)
{
if($time != time())
{
echo 'ok|'.$i."|".time()."\n";
$time = time();
echo "end\n";
$i = 0;
// break;
}
$i++;
}
简单的操作的函数,每秒其实可以运算千万次的。
这时候我们查看一下top命令
实际cpu一直维持在98%左右。
我们去掉相关代码
while(1)
{
}
只保留while(true),查看结果得知,cpu还是很高的状态。这是因为while(1)一直在进行着运算。
接着我们在while(1)里面增加sleep(1)函数,让他休息一下再执行下面的逻辑
可以看到cpu已经降下来了,因为有sleep停顿的操作,使代码不用一直不停地执行,所以cpu降了下来。
总结
我们自己写守护进程的时候,要考虑一下放在进程里,程序里消耗有多少,甚至new一个mysql对象一直保持的状态下有没问题,都是要考虑的。