Heim >Java >javaLernprogramm >Wie implementiert man präzise Verzögerungen in Java?

Wie implementiert man präzise Verzögerungen in Java?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-15 01:21:12426Durchsuche

How to Implement Precise Delays in Java?

Java-Verzögerungsimplementierung

In Java ist das Erstellen einer Verzögerung für eine bestimmte Dauer in verschiedenen Szenarien unerlässlich. In diesem Artikel werden Techniken zur Implementierung von Verzögerungen und deren Auswirkungen untersucht.

Der bereitgestellte Codeausschnitt verwendet eine While-Schleife, um ein Array zu durchlaufen und Elemente mit beabsichtigten Verzögerungen zwischen den einzelnen Aktionen auszuwählen und abzuwählen. Um dies zu erreichen, bietet die Java-Plattform mehrere Optionen:

java.util.concurrent.TimeUnit Sleep

Die TimeUnit-Klasse stellt Methoden wie SECONDS.sleep(1) zur Verfügung Pausieren Sie die Ausführung für eine bestimmte Dauer. Dieser Ansatz führt jedoch zu Abweichungen, da jede Ausführung geringfügige Zeitschwankungen aufweist.

ScheduledExecutorService

Für mehr Flexibilität und präzise Kontrolle ist der ScheduledExecutorService die bessere Wahl. Es unterstützt die Methoden „scheduleAtFixedRate“ und „scheduleWithFixedDelay“, um Aufgaben regelmäßig in vordefinierten Intervallen auszuführen.

Beispielimplementierung

So führen Sie jede Sekunde eine Aufgabe mit ScheduledExecutorService (Java 8) aus:

ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);

Java 7 Implementierung

ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
    @Override
    public void run() {
        myTask();
    }
}, 0, 1, TimeUnit.SECONDS);

Diese Methode stellt sicher, dass die Aufgabe in präzisen Intervallen ausgeführt wird, wodurch Driftprobleme vermieden werden.

Das obige ist der detaillierte Inhalt vonWie implementiert man präzise Verzögerungen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn