class WaitForCounterTask implements Runnable { final SharedCounter sharedCounter; WaitForCounterTask(SharedCounter sharedCounter) { this.sharedCounter = sharedCounter; } @Override public void run() { try { sharedCounter.waitForCounterToReachFive(); } catch (InterruptedException e) { System.out.println("The waiting thread was interrupted. Exits."); System.exit(1); } } }