import java.io.*; class Counter implements Runnable { private int count = 0; private boolean cancelled = false; public void run() { while (!cancelled) { System.out.println(count++); try { Thread.sleep(1000); } catch (InterruptedException x){} } System.out.println("Counter Finished"); } void cancel() { cancelled = true; } } class Cancel { public static void main(String[] args) { System.out.println("Press Enter to Cancel:"); Counter c = new Counter(); new Thread(c).start(); try { System.in.read(); } catch (IOException x) { System.out.println(x); } c.cancel(); // Don't forget this! System.out.println("Exiting main"); } } /* Output: Press Enter to Cancel: 0 1 2 Exiting main Counter Finished */ End of Listing