Concurrency Iniciante

Use Duration para valores de tempo autodocumentados.

✕ 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.
📖

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
Thread.sleep com Duration
Disponível

Amplamente disponível desde o JDK 19 (setembro de 2022)

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.

Compartilhar 𝕏 🦋 in