Перечисление TimeUnit
- java.lang.Object
-
- java.lang.Enum<TimeUnit>
-
- java.util.concurrent.TimeUnit
- Все реализуемые интерфейсы:
-
Serializable,Comparable<TimeUnit>
public enum TimeUnit extends Enum<TimeUnit>
A TimeUnit представляет временные интервалы в заданном единицах измерения и предоставляет утилитарные методы для преобразования между единицами, а также для выполнения операций тайминга и задержек в этих единицах. A TimeUnit не хранит информацию о времени, но только помогает организовать и использовать представления времени, которые могут храниться отдельно в различных контекстах. Наносекунда определяется как одна тысячная микросекунды, микросекунда как одна тысячная миллисекунды, миллисекунда как одна тысячная секунды, минута как шестьдесят секунд, час как шестьдесят минут, а день как двадцать четыре часа.
A TimeUnit в основном используется для того, чтобы сообщить методам, основанным на времени, как следует интерпретировать заданный параметр времени. Например, следующий код будет ожидать в течение 50 миллисекунд, если lock недоступен:
Lock lock = ...; if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ...в то время как этот код будет ожидать 50 секунд:
Lock lock = ...; if (lock.tryLock(50L, TimeUnit.SECONDS)) ...Обратите внимание, однако, что нет гарантии, что конкретная реализация таймаута сможет заметить течение времени с той же точностью, что и заданное
TimeUnit.- С:
- 1.5
Постоянные значения перечисления
| Постоянное значение перечисления | Описание |
|---|---|
DAYS | Единица измерения времени, представляющая двадцать четыре часа. |
HOURS | Единица измерения времени, представляющая шестьдесят минут. |
MICROSECONDS | Единица измерения времени, представляющая одну тысячную миллисекунды. |
MILLISECONDS | Единица измерения времени, представляющая одну тысячную секунды. |
MINUTES | Единица измерения времени, представляющая шестьдесят секунд. |
NANOSECONDS | Единица измерения времени, представляющая одну тысячную микросекунды. |
SECONDS | Единица измерения времени, представляющая одну секунду. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
long | convert(long sourceDuration,
TimeUnit sourceUnit) | Преобразует заданный временной интервал в заданной единице в данную единицу. |
long | convert(Duration duration) | Преобразует заданный временной интервал в данную единицу. |
static TimeUnit | of(ChronoUnit chronoUnit) | Преобразует |
void | sleep(long timeout) | Выполняет |
void | timedJoin(Thread thread,
long timeout) | Выполняет операцию ожидания |
void | timedWait(Object obj,
long timeout) | Выполняет операцию ожидания |
ChronoUnit | toChronoUnit() | Преобразует данную |
long | toDays(long duration) | Эквивалентно |
long | toHours(long duration) | Эквивалентно |
long | toMicros(long duration) | Эквивалентно |
long | toMillis(long duration) | Эквивалентно |
long | toMinutes(long duration) | Эквивалентно |
long | toNanos(long duration) | Эквивалентно |
long | toSeconds(long duration) | Эквивалентно |
static TimeUnit | valueOf(String name) | Возвращает константу перечисления этого типа с заданным именем. |
static TimeUnit[] | values() | Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления. |
Методы, унаследованные от класса java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf Методы, унаследованные от класса java.lang.Object
getClass, notify, notifyAll, wait, wait, wait Константы перечисления
NANOSECONDS
public static final TimeUnit NANOSECONDS
Единица времени, представляющая одну тысячную микросекунды.
MICROSECONDS
public static final TimeUnit MICROSECONDS
Единица времени, представляющая одну тысячную миллисекунды.
MILLISECONDS
public static final TimeUnit MILLISECONDS
Единица времени, представляющая одну тысячную секунды.
SECONDS
public static final TimeUnit SECONDS
Единица времени, представляющая одну секунду.
MINUTES
public static final TimeUnit MINUTES
Единица времени, представляющая шестьдесят секунд.
- Since:
- 1.6
HOURS
public static final TimeUnit HOURS
Единица времени, представляющая шестьдесят минут.
- Since:
- 1.6
DAYS
public static final TimeUnit DAYS
Единица времени, представляющая двадцать четыре часа.
- Since:
- 1.6
Методы
values
public static TimeUnit[] values()
Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления. Этот метод может использоваться для итерации по константам следующим образом:
for (TimeUnit c : TimeUnit.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
valueOf
public static TimeUnit valueOf(String name)
Возвращает константу перечисления этого типа с указанным именем. Строка должна точно совпадать с идентификатором, используемым для объявления константы перечисления в этом типе. (Лишние пробелы не допускаются.)
- Parameters:
-
name- the name of the enum constant to be returned. - Returns:
- the enum constant with the specified name
- Throws:
-
IllegalArgumentException- if this enum type has no constant with the specified name -
NullPointerException- if the argument is null
convert
public long convert(long sourceDuration,
TimeUnit sourceUnit) Преобразует заданную продолжительность времени в заданной единице в эту единицу. Преобразования из более мелких в более крупные единицы усекаются, то есть теряют точность. Например, преобразование 999 миллисекунд в секунды приводит к 0. Преобразования из более крупных в более мелкие единицы с аргументами, которые привели бы к численному переполнению, насыщаются до Long.MIN_VALUE если отрицательны, или Long.MAX_VALUE если положительны.
Например, чтобы преобразовать 10 минут в миллисекунды, используйте: TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)
- Parameters:
-
sourceDuration- the time duration in the givensourceUnit -
sourceUnit- the unit of thesourceDurationargument - Returns:
- the converted duration in this unit, or
Long.MIN_VALUEif conversion would negatively overflow, orLong.MAX_VALUEif it would positively overflow.
convert
public long convert(Duration duration)
Преобразует заданную продолжительность времени в эту единицу.
Для любой TimeUnit unit, unit.convert(Duration.ofNanos(n)) эквивалентно unit.convert(n, NANOSECONDS), а unit.convert(Duration.of(n, unit.toChronoUnit())) эквивалентно n (при отсутствии переполнения).
- API Note:
- Этот метод отличается от
Duration.toNanos()тем, что он не выбрасываетArithmeticExceptionпри числовом переполнении. - Parameters:
-
duration- the time duration - Returns:
- the converted duration in this unit, or
Long.MIN_VALUEif conversion would negatively overflow, orLong.MAX_VALUEif it would positively overflow. - Throws:
-
NullPointerException- ifdurationis null - Since:
- 11
- See Also:
Duration.of(long,TemporalUnit)
toNanos
public long toNanos(long duration)
Эквивалентно NANOSECONDS.convert(duration, this).
- Parameters:
-
duration- the duration - Returns:
- the converted duration, or
Long.MIN_VALUEif conversion would negatively overflow, orLong.MAX_VALUEif it would positively overflow.
toMicros
public long toMicros(long duration)
Эквивалентно MICROSECONDS.convert(duration, this).
- Parameters:
-
duration- the duration - Returns:
- the converted duration, or
Long.MIN_VALUEif conversion would negatively overflow, orLong.MAX_VALUEif it would positively overflow.
toMillis
public long toMillis(long duration)
Эквивалентно MILLISECONDS.convert(duration, this).
- Parameters:
-
duration- the duration - Returns:
- the converted duration, or
Long.MIN_VALUEif conversion would negatively overflow, orLong.MAX_VALUEif it would positively overflow.
toSeconds
public long toSeconds(long duration)
Эквивалентно SECONDS.convert(duration, this).
- Parameters:
-
duration- the duration - Returns:
- the converted duration, or
Long.MIN_VALUEif conversion would negatively overflow, orLong.MAX_VALUEif it would positively overflow.
toMinutes
public long toMinutes(long duration)
Эквивалентно MINUTES.convert(duration, this).
- Parameters:
-
duration- the duration - Returns:
- the converted duration, or
Long.MIN_VALUEif conversion would negatively overflow, orLong.MAX_VALUEif it would positively overflow. - Since:
- 1.6
toHours
public long toHours(long duration)
Эквивалентно HOURS.convert(duration, this).
- Parameters:
-
duration- the duration - Returns:
- the converted duration, or
Long.MIN_VALUEif conversion would negatively overflow, orLong.MAX_VALUEif it would positively overflow. - Since:
- 1.6
toDays
public long toDays(long duration)
Эквивалентно DAYS.convert(duration, this).
- Parameters:
-
duration- the duration - Returns:
- the converted duration
- Since:
- 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);
...
}
}
}
- Parameters:
-
obj- the object to wait on -
timeout- the maximum time to wait. If less than or equal to zero, do not wait at all. - Throws:
-
InterruptedException- if interrupted while waiting
timedJoin
public void timedJoin(Thread thread,
long timeout)
throws InterruptedException Выполняет метод Thread.join с ограничением по времени, используя эту единицу времени. Это вспомогательный метод, который преобразует аргументы времени в форму, требуемую методом Thread.join.
- Parameters:
-
thread- the thread to wait for -
timeout- the maximum time to wait. If less than or equal to zero, do not wait at all. - Throws:
-
InterruptedException- if interrupted while waiting
sleep
public void sleep(long timeout)
throws InterruptedException Выполняет метод Thread.sleep, используя эту единицу времени. Это вспомогательный метод, который преобразует аргументы времени в форму, требуемую методом Thread.sleep.
- Parameters:
-
timeout- the minimum time to sleep. If less than or equal to zero, do not sleep at all. - Throws:
-
InterruptedException- if interrupted while sleeping
toChronoUnit
public ChronoUnit toChronoUnit()
Преобразует эту TimeUnit в эквивалентную ChronoUnit.
- Returns:
- the converted equivalent ChronoUnit
- Since:
- 9
of
public static TimeUnit of(ChronoUnit chronoUnit)
Преобразует ChronoUnit в эквивалентную TimeUnit.
- Parameters:
-
chronoUnit- the ChronoUnit to convert - Returns:
- the converted equivalent TimeUnit
- Throws:
-
IllegalArgumentException- ifchronoUnithas no equivalent TimeUnit -
NullPointerException- ifchronoUnitis null - Since:
- 9
© 1993, 2020, 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/11/docs/api/java.base/java/util/concurrent/TimeUnit.html