Thread.sleep con Duration
Usa Duration para valores de tiempo autodocumentados.
Comparación de Código
✕ 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)
);
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
Autodocumentado
Duration.ofSeconds(5) es inequívoco.
Seguro en unidades
Sin pasar accidentalmente microsegundos como milisegundos.
Componible
Aritmética con Duration: plus(), multipliedBy(), etc.
Enfoque Antiguo
Milisegundos
Enfoque Moderno
Duration
Desde JDK
19
Dificultad
Principiante
Soporte JDK
Thread.sleep con Duration
Disponible
Ampliamente disponible desde JDK 19 (sept. 2022)
Cómo funciona
Thread.sleep(Duration) hace explícita la unidad de tiempo. Ya no hay que adivinar si 5000 significa milisegundos o microsegundos. Funciona con Duration.ofSeconds, ofMillis, ofMinutes, etc.
Documentación Relacionada