Перечисление TimeUnit
- Все реализованные интерфейсы:
-
Serializable,Comparable<TimeUnit>,Constable
public enum TimeUnit extends Enum<TimeUnit>
Единица измерения времени используется в основном для того, чтобы сообщить методам, основанным на времени, как следует интерпретировать заданный параметр тайминга. Например, следующий код будет ожидать 50 миллисекунд, если lock недоступен:
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ... в то время как этот код будет ожидать 50 секунд:
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.SECONDS)) ... Однако следует отметить, что нет гарантии, что конкретная реализация таймаута сможет заметить течение времени с той же гранулярностью, что и заданная единица измерения времени.- С:
- 1.5
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
Краткое описание констант перечисления
| Константа перечисления | Описание |
|---|---|
DAYS |
Единица измерения времени, представляющая двадцать четыре часа. |
HOURS |
Единица измерения времени, представляющая шестьдесят минут. |
MICROSECONDS |
Единица измерения времени, представляющая одну тысячную миллисекунды. |
MILLISECONDS |
Единица измерения времени, представляющая одну тысячную секунды. |
MINUTES |
Единица измерения времени, представляющая шестьдесят секунд. |
NANOSECONDS |
Единица измерения времени, представляющая одну тысячную микросекунды. |
SECONDS |
Единица измерения времени, представляющая одну секунду. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
long |
convert |
Преобразует заданную длительность времени в заданной единице в эту единицу. |
long |
convert |
Преобразует заданную длительность времени в эту единицу. |
static TimeUnit |
of |
Преобразует заданный период времени в эквивалентный. |
void |
sleep |
Выполняет Thread.sleep с использованием этой единицы времени. |
void |
timedJoin |
Выполняет тайм-аут Thread.join с использованием этой единицы времени. |
void |
timedWait |
Выполняет тайм-аут Object.wait с использованием этой единицы времени. |
ChronoUnit |
toChronoUnit() |
Преобразует эту единицу времени в эквивалентную. |
long |
toDays |
Эквивалентно DAYS.convert(duration, this). |
long |
toHours |
Эквивалентно HOURS.convert(duration, this). |
long |
toMicros |
Эквивалентно MICROSECONDS.convert(duration, this). |
long |
toMillis |
Эквивалентно MILLISECONDS.convert(duration, this). |
long |
toMinutes |
Эквивалентно MINUTES.convert(duration, this). |
long |
toNanos |
Эквивалентно NANOSECONDS.convert(duration, this). |
long |
toSeconds |
Эквивалентно SECONDS.convert(duration, this). |
static TimeUnit |
valueOf |
Возвращает константу перечисления этого класса с указанным именем. |
static TimeUnit[] |
values() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Подробности констант перечисления
НАНОСЕКУНДЫ
public static final TimeUnit NANOSECONDS
МИКРОСЕКУНДЫ
public static final TimeUnit MICROSECONDS
МИЛЛИСЕКУНДЫ
public static final TimeUnit MILLISECONDS
СЕКУНДЫ
public static final TimeUnit SECONDS
МИНУТЫ
public static final TimeUnit MINUTES
- С тех пор:
- 1.6
ЧАСЫ
public static final TimeUnit HOURS
- С тех пор:
- 1.6
ДНИ
public static final TimeUnit DAYS
- С тех пор:
- 1.6
Подробности методов
values
public static TimeUnit[] values()
- Возвращает:
- массив, содержащий константы этого класса перечисления в порядке их объявления
valueOf
public static TimeUnit valueOf(String name)
- Параметры:
-
name- имя константы перечисления, которое требуется вернуть. - Возвращает:
- константа перечисления с заданным именем
- Исключение:
-
IllegalArgumentException- если в этом классе перечисления нет константы с заданным именем -
NullPointerException- если аргумент равен null
convert
public long convert(long sourceDuration, TimeUnit sourceUnit)
999 миллисекунд в секунды приводит к 0. Преобразования с менее точной к более точной гранулярности с аргументами, которые численно выходили бы за пределы, насыщаются до Long.MIN_VALUE при отрицательном значении или Long.MAX_VALUE при положительном значении. Например, чтобы преобразовать 10 минут в миллисекунды, используйте: TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)
- Параметры:
-
sourceDuration- продолжительность времени в заданнойsourceUnit -
sourceUnit- единица измеренияsourceDurationаргумента - Возвращает:
- преобразованную продолжительность в этой единице, или
Long.MIN_VALUEесли преобразование вызвало отрицательное переполнение, илиLong.MAX_VALUEесли оно вызвало положительное переполнение.
convert
public long convert(Duration duration)
Для любого unit unit.convert(Duration.ofNanos(n)) эквивалентно unit.convert(n, NANOSECONDS), а unit.convert(Duration.of(n, unit.toChronoUnit())) эквивалентно n (при отсутствии переполнения).
- Прим. API:
- Этот метод отличается от
Duration.toNanos()тем, что не генерируетArithmeticExceptionпри численном переполнении. - Параметры:
-
duration- продолжительность времени - Возвращает:
- преобразованную продолжительность в этой единице, или
Long.MIN_VALUEесли преобразование вызвало отрицательное переполнение, илиLong.MAX_VALUEесли оно вызвало положительное переполнение. - Исключение:
-
NullPointerException- еслиdurationравно null - С тех пор:
- 11
- См. также:
toNanos
public long toNanos(long duration)
NANOSECONDS.convert(duration, this).- Параметры:
-
duration- продолжительность - Возвращает:
- преобразованную продолжительность, или
Long.MIN_VALUEесли преобразование вызвало отрицательное переполнение, илиLong.MAX_VALUEесли оно вызвало положительное переполнение.
toMicros
public long toMicros(long duration)
MICROSECONDS.convert(duration, this).- Параметры:
-
duration- продолжительность - Возвращает:
- преобразованную продолжительность, или
Long.MIN_VALUEесли преобразование вызвало отрицательное переполнение, илиLong.MAX_VALUEесли оно вызвало положительное переполнение.
toMillis
public long toMillis(long duration)
MILLISECONDS.convert(duration, this).- Параметры:
-
duration- продолжительность - Возвращает:
- преобразованную продолжительность, или
Long.MIN_VALUEесли преобразование вызвало отрицательное переполнение, илиLong.MAX_VALUEесли оно вызвало положительное переполнение.
toSeconds
public long toSeconds(long duration)
SECONDS.convert(duration, this).- Параметры:
-
duration- продолжительность - Возвращает:
- преобразованную продолжительность, или
Long.MIN_VALUEесли преобразование вызвало отрицательное переполнение, илиLong.MAX_VALUEесли оно вызвало положительное переполнение.
toMinutes
public long toMinutes(long duration)
MINUTES.convert(duration, this).- Параметры:
-
duration- продолжительность - Возвращает:
- преобразованную продолжительность, или
Long.MIN_VALUEесли преобразование вызвало отрицательное переполнение, илиLong.MAX_VALUEесли оно вызвало положительное переполнение. - С тех пор:
- 1.6
toHours
public long toHours(long duration)
HOURS.convert(duration, this).- Параметры:
-
duration- продолжительность - Возвращает:
- преобразованную продолжительность, или
Long.MIN_VALUEесли преобразование вызвало отрицательное переполнение, илиLong.MAX_VALUEесли оно вызвало положительное переполнение. - С тех пор:
- 1.6
toDays
public long toDays(long duration)
DAYS.convert(duration, this).- Параметры:
-
duration- продолжительность - Возвращает:
- преобразованную продолжительность
- С тех пор:
- 1.6
timedWait
public void timedWait(Object obj, long timeout) throws InterruptedException
Object.wait с использованием этой единицы измерения времени. Это удобный метод, который преобразует аргументы таймаута в формат, необходимый для метода Object.wait. Например, вы можете реализовать метод блокирующего poll (см. BlockingQueue.poll) с помощью:
public E poll(long timeout, TimeUnit unit)
throws InterruptedException {
synchronized (lock) {
while (isEmpty()) {
unit.timedWait(lock, timeout);
...
}
}
}
- Параметры:
-
obj- объект, на котором необходимо ожидать -
timeout- максимальное время ожидания. Если меньше или равно нулю, не ждать вообще. - Исключение:
-
InterruptedException- если прервано во время ожидания
timedJoin
public void timedJoin(Thread thread, long timeout) throws InterruptedException
Thread.join с использованием этой единицы измерения времени. Это удобный метод, который преобразует аргументы времени в формат, необходимый для метода Thread.join.- Параметры:
-
thread- поток, на котором необходимо ожидать -
timeout- максимальное время ожидания. Если меньше или равно нулю, не ждать вообще. - Исключение:
-
InterruptedException- если прервано во время ожидания
sleep
public void sleep(long timeout) throws InterruptedException
Thread.sleep с использованием этой единицы измерения времени. Это удобный метод, который преобразует аргументы времени в формат, необходимый для метода Thread.sleep.- Параметры:
-
timeout- минимальное время сна. Если меньше или равно нулю, не спать вообще. - Исключение:
-
InterruptedException- если прервано во время сна
toChronoUnit
public ChronoUnit toChronoUnit()
TimeUnit в эквивалентный ChronoUnit.- Возвращает:
- преобразованный эквивалентный ChronoUnit
- С тех пор:
- 9
of
public static TimeUnit of(ChronoUnit chronoUnit)
ChronoUnit в эквивалентный TimeUnit.- Параметры:
-
chronoUnit- ChronoUnit для преобразования - Возвращает:
- преобразованный эквивалентный TimeUnit
- Исключение:
-
IllegalArgumentException- если уchronoUnitнет эквивалентного TimeUnit -
NullPointerException- еслиchronoUnitравно null - С тех пор:
- 9
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/TimeUnit.html