Tuesday, March 10, 2009

Whats the difference between notify() and notifyAll()? (CoreJava)

Question :Whats the difference between notify() and notifyAll()? (CoreJava)
Answer :notify() is used to unblock one waiting thread; notifyAll() is used to
unblock all of them. Using notify() is preferable (for efficiency) when only
one blocked thread can benefit from the change (for example, when
freeing a buffer back into a pool). notifyAll() is necessary (for correctness)
if multiple threads should resume (for example, when releasing a "writer"
lock on a file might permit all "readers" to resume).

No comments: