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
난이도
초급
JDK 지원
Duration을 사용한 Thread.sleep
사용 가능
JDK 19 (2022년 9월) 이후 널리 사용 가능
동작 원리
Thread.sleep(Duration)은 시간 단위를 명시적으로 만듭니다. 5000이 밀리초인지 마이크로초인지 더 이상 추측할 필요가 없습니다. Duration.ofSeconds, ofMillis, ofMinutes 등과 함께 작동합니다.
관련 문서