Вы можете создать ScheduledExecutorService для выполнения того, что вы будете делать после задержки.
private final ScheduledExecutorService executor =
Executors.newSingleThreadScheduledExecutor();
// is main loop, waits between 10 - 30 ms.
executor.schedule(new Runnable() { public void run() {
// my delayed task
}}, 10 + new Random().nextInt(20), TimeUnit.MILLI_SECOND);
РЕДАКТИРОВАТЬ: Вы можете использовать Параллельный Backport для JDK 1.4. Это работает для JDK 1.2 до JDK 6