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 연산: plus(), multipliedBy() 등.

이전 방식
밀리초
모던 방식
Duration
JDK 버전
19
난이도
초급
Duration을 사용한 Thread.sleep
사용 가능

JDK 19 (2022년 9월) 이후 널리 사용 가능

Thread.sleep(Duration)은 시간 단위를 명시적으로 만듭니다. 5000이 밀리초인지 마이크로초인지 더 이상 추측할 필요가 없습니다. Duration.ofSeconds, ofMillis, ofMinutes 등과 함께 작동합니다.

공유 𝕏 🦋 in