Use java.util.concurrent.TimeUnit
:
TimeUnit.SECONDS.sleep(1);
Durma por um segundo ou
TimeUnit.MINUTES.sleep(1);
Durma por um minuto.
Como se trata de um loop, isso apresenta um problema inerente - desvio. Toda vez que você executa o código e, em seguida, dorme, estará um pouco à deriva, digamos, a cada segundo. Se este for um problema, não use sleep
.
Além disso, sleep
não é muito flexível quando se trata de controle.
Para executar uma tarefa a cada segundo ou com um atraso de um segundo, recomendo fortemente um [ ScheduledExecutorService
] [1] e [ scheduleAtFixedRate
] [2] ou [ scheduleWithFixedDelay
] [3].
Para executar o método a myTask
cada segundo (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");
}