Concurrency Débutant

Utilisez Duration pour des valeurs temporelles auto-documentées.

✕ 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)
);
Un problème avec ce code ? Dites-le nous.
📖

Auto-documenté

Duration.ofSeconds(5) est sans ambiguïté.

🛡️

Sûr en termes d'unités

Sans passer accidentellement des microsecondes comme des millisecondes.

🧩

Composable

Arithmétique avec Duration : plus(), multipliedBy(), etc.

Ancienne Approche
Millisecondes
Approche Moderne
Duration
Depuis JDK
19
Difficulté
Débutant
Thread.sleep avec Duration
Disponible

Disponible depuis JDK 19 (sept. 2022)

Thread.sleep(Duration) rend l'unité de temps explicite. Plus besoin de deviner si 5000 signifie des millisecondes ou des microsecondes. Fonctionne avec Duration.ofSeconds, ofMillis, ofMinutes, etc.

Partager 𝕏 🦋 in