public class Consumer extends Thread { private final int _id; private final Monitor _monitor; private final int _toConsume; private int _consumed; public Consumer(Monitor monitor, int id, int toConsume) { _id = id; _monitor = monitor; _toConsume = toConsume; _consumed = 0; } public synchronized void run() { while ( _consumed < _toConsume ) { try { wait(500); } catch (InterruptedException ie) { continue; } int number = _monitor.get(); _consumed++; System.out.println("Consumer "+_id+" consumed "+number); } } }