Concurrency Początkujący

Używaj Duration dla samo-dokumentujących wartości czasu.

✕ 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)
);
Widzisz problem z tym kodem? Daj nam znać.
📖

Samo-dokumentujący

Duration.ofSeconds(5) jest jednoznaczne.

🛡️

Bezpieczne jednostki

Brak ryzyka przypadkowego przekazania mikrosekund jako milisekund.

🧩

Kompozycyjność

Operacje na Duration: plus(), multipliedBy() itp.

Stare podejście
Milisekundy
Nowoczesne podejście
Duration
Od JDK
19
Poziom trudności
Początkujący
Thread.sleep z Duration
Dostępne

Szeroko dostępne od JDK 19 (wrzesień 2022)

Thread.sleep(Duration) sprawia, że jednostka czasu jest jawna. Koniec z zgadywaniem, czy 5000 oznacza milisekundy czy mikrosekundy. Działa z Duration.ofSeconds, ofMillis, ofMinutes itp.