Producer Consumer Problem is a classical concurrency problem. In fact it is one of the concurrency design pattern . Producer Consumer Design Patter can either be implemented using following two approaces. By using wait(), notify() and notifyAll() methods By using BlockingQueue In this post I will explain implementation using wait() and notify() method. If you are interested in the implementation using Blocking Queue, you can check my post Producer Consumer Design Pattern using BlockingQueue . The Object class in java contains three final methods that allows threads to communicate about the lock status of a resource. These methods are wait() , notify() and notifyAll() . We can use wait() method to pause execution of thread. notify() and notifyAll() methods are used to wake up waiting th...