“睡眠”和“等待”有什么区别

时间:2013-12-09 16:49:12

标签: php block sleep wait

while(true) {sleep(1);}while(true) {$queue.wait();}之间有什么区别?哪一个会占用CPU成本?

我认为sleep执行将使用CPU来计算和比较条件; 在另一方面,wait是一个阻塞调用,在notify等待它之前不会使用CPU

我明白错了吗?以及如何在较低级别实施wait?与sleep或其他?

// example(in PHP):
while (true) {
    // do something 
    // until some conditions become true
    sleep(1);
}

while (true) {
    $data=$sock.accept(); // block until data response
    // $queue.wait(); // also block until data enqueue
    // do something
}

1 个答案:

答案 0 :(得分:1)

while(true)基本上是while(true==true),如你所说,是一个无限循环!

可以使用sleep()函数实现等待,是的。

while(condition=true)
{
sleep(x);
}

条件是您要检查的内容(页面加载,下载完成等),x是您希望它等待的时间,以秒为单位。