Concurrency Einsteiger

Duration für selbstdokumentierende Zeitangaben verwenden.

✕ 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.
📖

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
Thread.sleep mit Duration
Verfügbar

Weitgehend verfügbar seit JDK 19 (Sept. 2022)

Thread.sleep(Duration) macht die Zeiteinheit explizit. Kein Rätselraten mehr, ob 5000 Millisekunden oder Mikrosekunden bedeutet. Funktioniert mit Duration.ofSeconds, ofMillis, ofMinutes usw.

Teilen 𝕏 🦋 in