For a more advanced and flexible approach:
import java.util.concurrent.*;
public class SleepExample {
public static void main(String[] args) {
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
Runnable task = new Runnable() {
private int count = 1;
@Override
public void run() {
if (count > 10) {
scheduler.shutdown(); // Stop execution
return;
}
System.out.println(count++);
}
};
scheduler.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);
}
}
This is non-blocking, meaning your program can do other tasks in parallel.