Concurrency 入门

使用 Duration 的 Thread.sleep

使用 Duration 表达自文档化的时间值。

✕ 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)
);
发现此代码有问题? 告诉我们。
📖

自我描述

Duration.ofSeconds(5) 无歧义。

🛡️

无单位混淆

不可能意外地将秒传递给期望毫秒的方法。

🔧

可组合

Duration 与其他 java.time API 无缝配合。

旧方式
毫秒
现代方式
Duration
自 JDK
19
难度
入门
使用 Duration 的 Thread.sleep
可用

自 JDK 19 起广泛可用(2022 年 9 月)

Thread.sleep(Duration) 使时间单位明确。不再需要猜测数字是毫秒、秒还是纳秒——Duration.ofSeconds(5) 一目了然。

分享 𝕏 🦋 in