Duration ile Thread.sleep
Kendini belgeleyen zaman değerleri için Duration kullanın.
Kod Karşılaştırması
✕ 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)
);
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Kendini belgeleyen
Duration.ofSeconds(5) belirsizlik taşımaz.
Birim güvenli
Mikrosaniyeyi yanlışlıkla milisaniye olarak geçirme olmaz.
Birleştirilebilir
Duration matematiği: plus(), multipliedBy() vb.
Eski Yaklaşım
Milisaniye
Modern Yaklaşım
Duration
JDK'dan itibaren
19
Zorluk
Başlangıç
JDK Desteği
Duration ile Thread.sleep
Mevcut
JDK 19'dan itibaren geniş çapta kullanılabilir (Eylül 2022)
Nasıl çalışır
Thread.sleep(Duration) zaman birimini açık hale getirir. 5000'in milisaniye mi yoksa mikrosaniye mi olduğunu artık tahmin etmeye gerek yok. Duration.ofSeconds, ofMillis, ofMinutes vb. ile çalışır.
İlgili Belgeler