Если вы хотите сделать паузу, используйте java.util.concurrent.TimeUnit:
TimeUnit.SECONDS.sleep(1);
Спать одну секунду или
TimeUnit.MINUTES.sleep(1);
Спать минуту.
Поскольку это цикл, это представляет собой внутреннюю проблему - дрейф. Каждый раз, когда вы запускаете код, а затем засыпаете, вы будете немного отвлекаться, скажем, каждую секунду. Если это проблема, не используйте sleep.
Кроме того, sleepне очень гибкий, когда дело доходит до контроля.
Для запуска задачи каждую секунду или с задержкой в одну секунду я настоятельно рекомендую a ScheduledExecutorServiceи либо scheduleAtFixedRateили scheduleWithFixedDelay.
Например, чтобы запустить метод 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");
}
И в Java 7:
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
myTask();
}
}, 0, 1, TimeUnit.SECONDS);
}
private static void myTask() {
System.out.println("Running");
}
Thread.Sleep().