Страницы

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

воскресенье, 12 января 2020 г.

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

#java


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

Thread.sleep(*очень большое число*) 


Может быть есть другой, более правильный способ?
    


Ответы

Ответ 1



Правильнее будет воспользоваться таймером или 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);

Ответ 2



try { Thread.sleep(1000 * 60 * 60); } catch (InterruptedException ex) {}

Ответ 3



TimeUnit.SECONDS.sleep(1); TimeUnit.MINUTES.sleep(1); TimeUnit.HOURS.sleep(1); TimeUnit.DAYS.sleep(1); такое не устраивает ?

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

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