Spec-Zone.ru › OpenJDK 8

Перечисление 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)

Выполняет Thread.sleep с использованием этой единицы измерения времени.

void timedJoin(Thread thread, long timeout)

Выполняет тайм-аут Thread.join с использованием этой единицы измерения времени.

void timedWait(Object obj, long timeout)

Выполняет тайм-аут Object.wait с использованием этой единицы измерения времени.

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, 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.

Spec-Zone.ru

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