import java.util.Random; public class HelloWorld { private final static int THREADS = 10; private final static int MAXWAIT = 4000; private final Random _rand = new Random(); // ----- public static void main(String[] args) { new HelloWorld(); } public HelloWorld() { for ( int i = 0; i < THREADS; ++i ) { new HelloWorldThread(i, _rand.nextInt(MAXWAIT)).start(); } } } class HelloWorldThread extends Thread { private final int _id; private final int _toWait; // ----- public HelloWorldThread(int id, int toWait) { _id = id; _toWait = toWait; } public synchronized void run() { try { wait(_toWait); System.out.println("Hello, World! Thread "+_id); } catch (InterruptedException ie) { } } }