TimeUnit
TimeUnit (시간 단위 열거형)
주어진 단위의 시간 길이를 나타내고, 단위 간 변환과 그 단위에서의 타이밍·지연 연산을 위한 유틸리티 메서드를 제공하는 열거형이에요. 시간 정보 자체는 유지하지 않아요.
본문
TimeUnit은 나노초·마이크로초·밀리초·초·분·시·일 단위를 나타내요.
- 나노초는 마이크로초의 1000분의 1, 마이크로초는 밀리초의 1000분의 1, 밀리초는 초의 1000분의 1이에요.
- 분은 60초, 시간은 60분, 하루는 24시간이에요.
주로 시간 기반 메서드에 주어진 타이밍 파라미터를 어떻게 해석할지 알려주기 위해 사용해요. 예를 들어 다음 코드는 락을 얻지 못하면 50밀리초 후 시간 초과돼요.
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ...
반면 다음 코드는 50초 후에 시간 초과돼요.
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.SECONDS)) ...
다만 특정 시간 초과 구현이 주어진 TimeUnit과 같은 세분화(granularity)로 시간 경과를 감지할 수 있으리라는 보장은 없어요.
long millis = TimeUnit.SECONDS.toMillis(2); // 2000
TimeUnit.MINUTES.sleep(1); // 1분 동안 sleep
코드와 시그니처는 원문 그대로 보존돼요.