I have two threads. Thread A is pulling some elements from queue and thread B is adding some elements to the queue.
I want thread A to go to sleep when the queue is emp
Use a BlockingQueue, which is:
A
Queue
that additionally supports operations that wait for the queue to become non-empty when retrieving an element, and wait for space to become available in the queue when storing an element.
Seriously, don't try to reinvent the wheel here.
(If you must use wait/notify, read this tutorial. But spare yourself the pain, please!)