Spec-Zone.ru › OpenJDK 21

Перечисление TimeUnit

java.lang.Object
java.lang.Enum<TimeUnit>
java.util.concurrent.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 sourceDuration, TimeUnit sourceUnit)
Преобразует заданную длительность времени в заданной единице в эту единицу.
long convert(Duration duration)
Преобразует заданную длительность времени в эту единицу.
static TimeUnit of(ChronoUnit chronoUnit)
Преобразует заданный период времени в эквивалентный.
void sleep(long timeout)
Выполняет Thread.sleep с использованием этой единицы времени.
void timedJoin(Thread thread, long timeout)
Выполняет тайм-аут Thread.join с использованием этой единицы времени.
void timedWait(Object obj, long timeout)
Выполняет тайм-аут Object.wait с использованием этой единицы времени.
ChronoUnit toChronoUnit()
Преобразует эту единицу времени в эквивалентную.
long toDays(long duration)
Эквивалентно DAYS.convert(duration, this).
long toHours(long duration)
Эквивалентно HOURS.convert(duration, this).
long toMicros(long duration)
Эквивалентно MICROSECONDS.convert(duration, this).
long toMillis(long duration)
Эквивалентно MILLISECONDS.convert(duration, this).
long toMinutes(long duration)
Эквивалентно MINUTES.convert(duration, this).
long toNanos(long duration)
Эквивалентно NANOSECONDS.convert(duration, this).
long toSeconds(long duration)
Эквивалентно SECONDS.convert(duration, this).
static TimeUnit valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем.
static TimeUnit[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

Методы, объявленные в классе java.lang.Enum

clone, compareTo, describeConstable, 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
Единица измерения времени, представляющая шестьдесят секунд.
С тех пор:
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
См. также:
  • Duration.of(long,TemporalUnit)

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API