This week's book giveaways are in the Refactoring and Agile forums. We're giving away four copies each of Re-engineering Legacy Software and Docker in Action and have the authors on-line! See this thread and this one for details.
More than one thread can wait on an object at any given time. When you call an object's notify() method, only one of those waiting threads will be woken (and you can't choose which one). On the other hand, if you call an object's notifyAll() method, all of those waiting threads will be woken.