Thread.sleep con Duration
Usa Duration per valori di tempo auto-documentanti.
Confronto Codice
✕ 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)
);
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Auto-documentante
Duration.ofSeconds(5) è inequivocabile.
Sicuro per unità
Nessun rischio di passare accidentalmente microsecondi come millisecondi.
Componibile
Aritmetica Duration: plus(), multipliedBy(), ecc.
Approccio Vecchio
Millisecondi
Approccio Moderno
Duration
Dal JDK
19
Difficoltà
Principiante
Supporto JDK
Thread.sleep con Duration
Disponibile
Ampiamente disponibile dal JDK 19 (settembre 2022)
Come funziona
Thread.sleep(Duration) rende l'unità di tempo esplicita. Non serve più indovinare se 5000 significa millisecondi o microsecondi. Funziona con Duration.ofSeconds, ofMillis, ofMinutes, ecc.
Documentazione Correlata