Thread.sleep mit Duration
Duration für selbstdokumentierende Zeitangaben verwenden.
Code-Vergleich
✕ Java 8
// What unit is 5000? ms? us? Thread.sleep(5000); // 2.5 seconds: math required Thread.sleep(2500);
✓ Java 19+
Thread.sleep(
Duration.ofSeconds(5)
);
Thread.sleep(
Duration.ofMillis(2500)
);
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Selbstdokumentierend
Duration.ofSeconds(5) ist eindeutig.
Einheitensicher
Kein versehentliches Übergeben von Mikrosekunden als Millisekunden.
Kombinierbar
Duration-Arithmetik: plus(), multipliedBy() usw.
Alter Ansatz
Millisekunden
Moderner Ansatz
Duration
Seit JDK
19
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Thread.sleep mit Duration
Verfügbar
Weitgehend verfügbar seit JDK 19 (Sept. 2022)
Wie es funktioniert
Thread.sleep(Duration) macht die Zeiteinheit explizit. Kein Rätselraten mehr, ob 5000 Millisekunden oder Mikrosekunden bedeutet. Funktioniert mit Duration.ofSeconds, ofMillis, ofMinutes usw.
Zugehörige Dokumentation