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

Q

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

✍: Guest

A

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).

2013-02-15, 2166👍, 0💬