|A queue. One thread calls push() to put an object on the queue.
Another calls pop() to get an object off the queue. If there is no
data, pop() waits until there is some, using wait()/notify().
wait() and notify() must be used within a synchronized method or
block. In Java 5.0, use a java.util.concurrent.BlockingQueue instead.|