Java tutorial
class TryThread extends Thread { public TryThread(String firstName, String secondName, long delay) { this.firstName = firstName; this.secondName = secondName; aWhile = delay; setDaemon(true); } public void run() { try { while (total < 1000) { System.out.print(firstName); sleep(aWhile); total += aWhile; System.out.print(secondName + "\n"); } System.out.print(secondName + " stoped.\n"); } catch (InterruptedException e) { System.out.println(firstName + secondName + e); } } private String firstName; private String secondName; private long aWhile; private long total; } public class MainClass { public static void main(String[] args) { Thread first = new TryThread("A ", "a ", 200L); Thread second = new TryThread("B ", "b ", 300L); Thread third = new TryThread("C ", "c ", 500L); first.start(); second.start(); third.start(); try { first.join(2000); // Wait up to 2 second for thread1 to die } catch (InterruptedException e) { e.printStackTrace(); } } }