Перечисление 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) Преобразует заданную длительность времени в заданной единице измерения в эту единицу. |
void |
sleep(long timeout) Выполняет |
void |
timedJoin(Thread thread,
long timeout) Выполняет тайм-аут |
void |
timedWait(Object obj,
long timeout) Выполняет тайм-аут |
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 Постоянные значения перечисления
НАНОСЕКУНДЫ
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
Единица измерения времени, представляющая шестьдесят секунд
ЧАСЫ
public static final TimeUnit HOURS
Единица измерения времени, представляющая шестьдесят минут
ДНИ
public static final TimeUnit DAYS
Единица измерения времени, представляющая двадцать четыре часа
Методы
values
public static TimeUnit[] values()
Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления. Этот метод можно использовать для итерации по константам следующим образом:
for (TimeUnit c : TimeUnit.values()) System.out.println(c);
- Возвращает:
- массив, содержащий константы этого типа перечисления в порядке их объявления
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если оно вызовет положительное переполнение.
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 synchronized Object poll(long timeout, TimeUnit unit)
throws InterruptedException {
while (empty) {
unit.timedWait(this, 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- если прервано во время ожидания
© 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.