Object.wait()
is supposed to block until either another thread invokes the Object.notify()
or Object.notifyAll()
method, or a specified amount of time has elapsed. The various Condition.await()
methods have similar behavior. However, it is possible for a thread to wake up without either of those occurring; these are called spurious wakeups.
Because of spurious wakeups, Object.wait()
and Condition.await()
must always be called in a loop. The correct fix for this varies depending on what you are trying to do.
Read full article from WaitNotInLoop
No comments:
Post a Comment