Если вы хотите сделать паузу, используйте java.util.concurrent.TimeUnit
:
TimeUnit.SECONDS.sleep(1);
Спать одну секунду или
TimeUnit.MINUTES.sleep(1);
Чтобы поспать минутку.
Поскольку это петля, это создает внутреннюю проблему - дрейф. Каждый раз, когда вы запускаете код, а затем засыпаете, вы будете немного отклоняться от выполнения, скажем, каждую секунду. Если это проблема, не используйте sleep
.
Кроме того, sleep
не очень гибок, когда дело касается управления.
Для запуска задачи каждую секунду или с задержкой в одну секунду я настоятельно рекомендую ScheduledExecutorService
и либо _ 7_ или _ 8_.
Например, чтобы запускать метод 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");
}
person
Boris the Spider
schedule
08.06.2014
Thread.sleep(<milisecondsToSleep>)
.s
не следует писать с заглавной буквы. - person Jade   schedule 26.09.2017