2010-03-05 15 views
15

Beeinflussen unechte Wakeups Aufrufe von Thread.sleep (x)? Offensichtlich ist der Timer nicht 100% genau (was zu geringfügigen Ungenauigkeiten in den Aufwachzeiten führt), aber wird er durch das falsche Weckproblem beeinflusst?Wirken sich falsche Wakeups auf Thread.sleep aus?

+0

Was meinst du mit "betroffen"? Fragen Sie, ob es dazu führen kann, dass sie nicht zur richtigen Zeit ausgeführt werden? oder nicht aufwachen? Oder fragst du, ob sie versehentlich aufwachen können? – Kylar

+0

Ich frage, ob sie versehentlich erweckt werden können, bevor sie geweckt werden sollten (wobei "sollte sein" als eine Zeitspanne definiert wird, die größer ist als die natürliche Ungenauigkeit des zugrunde liegenden Timers). – jsight

Antwort

9

Sie fragen, ob Thread.sleep() von demselben spurious wakeup Problem betroffen ist, das dokumentiert wird, um Object.wait(long) zu beeinflussen, Recht? Die Antwort ist, dass es kein dokumentiertes Spurious Wakeup gibt, das mit Thread.sleep() verbunden ist. Sie haben recht, wenn Sie nicht genau wissen, wie lange Sie schlafen werden, wenn Sie N Millisekunden anfordern. Natürlich endet auch Thread.sleep() auf Thread-Interrupt.

+6

Also meinst du, die Antwort ist "Nein, wir müssen uns nicht vor unechten Aufwachen schützen" oder "Ja, wir müssen uns vor falschem Aufwachen schützen"? – Pacerier

4

reales Schlafintervall ist immer> = erforderliches Intervall. es ist besonders empfindlich in kleinen Intervallen.

jetzt über "falsche wakeups". Es wurde nicht erwähnt über Thread.sleep

Verwandte Themen