2010-03-05 104 views
15

虚假唤醒是否会影响对Thread.sleep(x)的调用?显然,定时器不是100%精确的(导致唤醒时间不准确),但它是否受到虚假唤醒问题的影响?虚假唤醒会影响Thread.sleep吗?

+0

“受影响”是什么意思?你问是否会导致他们在适当的时候不执行?或不醒来?或者你问他们是否可以意外唤醒? – Kylar 2010-03-05 18:08:24

+0

我在问他们是否应该在被唤醒之前意外唤醒(“应该”被定义为比基础计时器的自然不准确性更长的时间长度)。 – jsight 2010-03-05 18:12:07

回答

9

你在问是否Thread.sleep()受到相同的spurious wakeup问题影响Object.wait(long),对吗?答案是没有记录的虚假唤醒与Thread.sleep()相关联。你说得对,当你要求N毫秒时,你会睡多久才能做出硬性保证。另外,当然,Thread.sleep()在线程中断时终止。

+6

那么你的意思是答案是“不,我们不必防范虚假唤醒”或“是的,我们必须防范虚假唤醒”? – Pacerier 2011-12-08 14:58:44

4

实际睡眠间隔始终> =所需间隔。它在小间隔时特别敏感。

现在关于“虚假唤醒”。它没有提到Thread.sleep