Verwendung java.util.concurrent.TimeUnit:
TimeUnit.SECONDS.sleep(1);
Schlaf für eine Sekunde oder
TimeUnit.MINUTES.sleep(1);
Schlaf eine Minute.
Da dies eine Schleife ist, stellt dies ein inhärentes Problem dar - Drift. Jedes Mal, wenn Sie Code ausführen und dann schlafen, werden Sie beispielsweise jede Sekunde ein wenig vom Laufen abweichen. Wenn dies ein Problem ist, verwenden Sie es nicht sleep.
Darüber hinaus sleepist nicht sehr flexibel, wenn es um Kontrolle geht.
Um eine Aufgabe jede Sekunde oder mit einer Verzögerung von einer Sekunde auszuführen, würde ich dringend eine [ ScheduledExecutorService] [1] und entweder [ scheduleAtFixedRate] [2] oder [ scheduleWithFixedDelay] [3] empfehlen .
So führen Sie die Methode myTaskjede Sekunde aus (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");
}