2010-03-05 101 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