Thread.sleep com Duration
Use Duration para valores de tempo autodocumentados.
Comparação 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)
);
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Autodocumentado
Duration.ofSeconds(5) é inequívoco.
Seguro quanto à unidade
Sem risco de passar microssegundos como milissegundos por engano.
Componível
Aritmética com Duration: plus(), multipliedBy(), etc.
Abordagem Antiga
Milissegundos
Abordagem Moderna
Duration
Desde o JDK
19
Dificuldade
Iniciante
Suporte JDK
Thread.sleep com Duration
Disponível
Amplamente disponível desde o JDK 19 (setembro de 2022)
Como funciona
Thread.sleep(Duration) torna a unidade de tempo explícita. Chega de adivinhar se 5000 significa milissegundos ou microssegundos. Funciona com Duration.ofSeconds, ofMillis, ofMinutes, etc.
Documentação Relacionada