import java.util.concurrent.CountDownLatch; public class MyTask implements Runnable { private final int MAX_COUNT = 10000; private Monitor monitor; private CountDownLatch latch; public MyTask(Monitor mon, CountDownLatch lat) { monitor = mon; latch = lat; } @Override public void run() { for (int i = 0; i < MAX_COUNT; i++) { monitor.increment(); } System.out.println("DONE! The shared counter is now: " + monitor.getCounter()); latch.countDown(); } }