Используйте java.util.concurrent.TimeUnit:
TimeUnit.SECONDS.sleep(1);
Спи одну секунду или
TimeUnit.MINUTES.sleep(1);
Спи минуту.
Поскольку это цикл, это представляет собой внутреннюю проблему - дрейф. Каждый раз, когда вы запускаете код, а затем засыпаете, вы будете немного отвлекаться, скажем, каждую секунду. Если это проблема, не используйте sleep.
Кроме того, sleepне очень гибкий, когда дело доходит до контроля.
Для запуска задачи каждую секунду или с задержкой в одну секунду я настоятельно рекомендую [ ScheduledExecutorService] [1] и либо [ scheduleAtFixedRate] [2] или [ scheduleWithFixedDelay] [3].
Чтобы запустить метод myTaskкаждую секунду (Java 8):
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);
}
private static void myTask() {
System.out.println("Running");
}