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, sleepnã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 myTaskcada 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");
}