Страницы

Поиск по вопросам

вторник, 5 марта 2019 г.

Большая задержка(пауза) в Java

Делаю Java приложения. Возникла необходимость при выполнении определенных условий делать паузу выполнения программы на длительное время(час или даже больше). Код выполняется отдельном потоке. На сколько правильно будет использовать для такой большой паузы
Thread.sleep(*очень большое число*)
Может быть есть другой, более правильный способ?


Ответ

Правильнее будет воспользоваться таймером или ScheduledExecutor(ом) например вот так:
Timer t = new Timer(); t.scheduleAtFixedRate(new TimerTask() { public void run() { System.out.println("do task"); } }, 0, 100);

ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor(); service.scheduleWithFixedDelay( () -> { System.out.println("do task"); }, 0, 1, TimeUnit.HOURS);

Комментариев нет:

Отправить комментарий