Spec-Zone.ru › OpenJDK 27

Класс AbstractQueuedLongSynchronizer.ConditionObject

java.lang.Object
java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject
Все реализуемые интерфейсы:
Serializable, Condition
Внешний класс:
AbstractQueuedLongSynchronizer
public class AbstractQueuedLongSynchronizer.ConditionObject extends Object implements Condition, Serializable
Реализация условия для AbstractQueuedLongSynchronizer, служащего основой реализации Lock.

Документация методов этого класса описывает механику, а не спецификации поведения с точки зрения пользователей Lock и Condition. Экспортируемые версии этого класса, как правило, необходимо сопровождать документацией, описывающей семантику условий, основанную на семантике связанного AbstractQueuedLongSynchronizer.

Этот класс сериализуем, но все его поля являются transient, поэтому десериализованные условия не содержат ожидающих потоков.

С версии:
1.6
См. также:
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
ConditionObject()
Создаёт новый экземпляр ConditionObject.

Краткое описание методов

Модификатор и тип Метод Описание
final void await()
Реализует ожидание условия с возможностью прерывания.
final boolean await(long time, TimeUnit unit)
Реализует ожидание условия с ограничением по времени.
final long awaitNanos(long nanosTimeout)
Реализует ожидание условия с ограничением по времени.
final void awaitUninterruptibly()
Реализует ожидание условия без возможности прерывания.
final boolean awaitUntil(Date deadline)
Реализует ожидание условия до абсолютного момента времени.
protected final Collection<Thread> getWaitingThreads()
Возвращает коллекцию, содержащую потоки, которые могут ожидать этого условия.
protected final int getWaitQueueLength()
Возвращает оценочное количество потоков, ожидающих этого условия.
protected final boolean hasWaiters()
Проверяет, ожидают ли этого условия какие-либо потоки.
final void signal()
Перемещает поток, ожидающий дольше всех, если такой есть, из очереди ожидания этого условия в очередь ожидания связанной блокировки.
final void signalAll()
Перемещает все потоки из очереди ожидания этого условия в очередь ожидания связанной блокировки.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо истечения заданного интервала реального времени.

Подробное описание конструкторов

ConditionObject

public ConditionObject()
Создаёт новый экземпляр ConditionObject.

Подробное описание методов

signal

public final void signal()
Перемещает поток, ожидающий дольше всех, если такой есть, из очереди ожидания этого условия в очередь ожидания связанной блокировки.
Определён в:
signal в интерфейсе Condition
Выбрасывает:
IllegalMonitorStateException — если AbstractQueuedLongSynchronizer.isHeldExclusively() возвращает false

signalAll

public final void signalAll()
Перемещает все потоки из очереди ожидания этого условия в очередь ожидания связанной блокировки.
Определён в:
signalAll в интерфейсе Condition
Выбрасывает:
IllegalMonitorStateException — если AbstractQueuedLongSynchronizer.isHeldExclusively() возвращает false

awaitUninterruptibly

public final void awaitUninterruptibly()
Реализует ожидание условия без возможности прерывания.
  1. Сохраняет состояние блокировки, возвращённое методом AbstractQueuedLongSynchronizer.getState().
  2. Вызывает AbstractQueuedLongSynchronizer.release(long), передавая сохранённое состояние в качестве аргумента; если вызов завершается неудачей, выбрасывается IllegalMonitorStateException.
  3. Блокирует поток до получения сигнала.
  4. Повторно захватывает блокировку, вызывая базовую версию AbstractQueuedLongSynchronizer.acquire(long) с сохранённым состоянием в качестве аргумента.
Определён в:
awaitUninterruptibly в интерфейсе Condition

await

public final void await() throws InterruptedException
Реализует ожидание условия с возможностью прерывания.
  1. Если текущий поток прерван, выбрасывает InterruptedException.
  2. Сохраняет состояние блокировки, возвращённое методом AbstractQueuedLongSynchronizer.getState().
  3. Вызывает AbstractQueuedLongSynchronizer.release(long), передавая сохранённое состояние в качестве аргумента; если вызов завершается неудачей, выбрасывается IllegalMonitorStateException.
  4. Блокирует поток до получения сигнала или прерывания.
  5. Повторно захватывает блокировку, вызывая базовую версию AbstractQueuedLongSynchronizer.acquire(long) с сохранённым состоянием в качестве аргумента.
  6. Если поток был прерван во время блокировки на шаге 4, выбрасывает InterruptedException.
Определён в:
await в интерфейсе Condition
Выбрасывает:
InterruptedException — если текущий поток прерван (и поддерживается прерывание при приостановке потока)

awaitNanos

public final long awaitNanos(long nanosTimeout) throws InterruptedException
Реализует ожидание условия с ограничением по времени.
  1. Если текущий поток прерван, выбрасывает InterruptedException.
  2. Сохраняет состояние блокировки, возвращённое методом AbstractQueuedLongSynchronizer.getState().
  3. Вызывает AbstractQueuedLongSynchronizer.release(long), передавая сохранённое состояние в качестве аргумента; если вызов завершается неудачей, выбрасывается IllegalMonitorStateException.
  4. Блокирует поток до получения сигнала, прерывания или истечения времени ожидания.
  5. Повторно захватывает блокировку, вызывая базовую версию AbstractQueuedLongSynchronizer.acquire(long) с сохранённым состоянием в качестве аргумента.
  6. Если поток был прерван во время блокировки на шаге 4, выбрасывает InterruptedException.
Определён в:
awaitNanos в интерфейсе Condition
Параметры:
nanosTimeout — максимальное время ожидания в наносекундах
Возвращает:
оценку значения nanosTimeout за вычетом времени, проведённого в ожидании до возврата из этого метода. Положительное значение можно использовать в качестве аргумента последующего вызова этого метода, чтобы завершить ожидание в течение требуемого времени. Значение, меньшее или равное нулю, означает, что времени не осталось.
Выбрасывает:
InterruptedException — если текущий поток прерван (и поддерживается прерывание при приостановке потока)

awaitUntil

public final boolean awaitUntil(Date deadline) throws InterruptedException
Реализует ожидание условия до абсолютного момента времени.
  1. Если текущий поток прерван, выбрасывает InterruptedException.
  2. Сохраняет состояние блокировки, возвращённое методом AbstractQueuedLongSynchronizer.getState().
  3. Вызывает AbstractQueuedLongSynchronizer.release(long), передавая сохранённое состояние в качестве аргумента; если вызов завершается неудачей, выбрасывается IllegalMonitorStateException.
  4. Блокирует поток до получения сигнала, прерывания или истечения времени ожидания.
  5. Повторно захватывает блокировку, вызывая базовую версию AbstractQueuedLongSynchronizer.acquire(long) с сохранённым состоянием в качестве аргумента.
  6. Если поток был прерван во время блокировки на шаге 4, выбрасывает InterruptedException.
  7. Если время ожидания истекло во время блокировки на шаге 4, возвращает false, иначе — true.
Определён в:
awaitUntil в интерфейсе Condition
Параметры:
deadline — абсолютный момент времени, до которого следует ожидать
Возвращает:
false, если к моменту возврата срок истёк, иначе true
Выбрасывает:
InterruptedException — если текущий поток прерван (и поддерживается прерывание при приостановке потока)

await

public final boolean await(long time, TimeUnit unit) throws InterruptedException
Реализует ожидание условия с ограничением по времени.
  1. Если текущий поток прерван, выбрасывает InterruptedException.
  2. Сохраняет состояние блокировки, возвращённое методом AbstractQueuedLongSynchronizer.getState().
  3. Вызывает AbstractQueuedLongSynchronizer.release(long), передавая сохранённое состояние в качестве аргумента; если вызов завершается неудачей, выбрасывается IllegalMonitorStateException.
  4. Блокирует поток до получения сигнала, прерывания или истечения времени ожидания.
  5. Повторно захватывает блокировку, вызывая базовую версию AbstractQueuedLongSynchronizer.acquire(long) с сохранённым состоянием в качестве аргумента.
  6. Если поток был прерван во время блокировки на шаге 4, выбрасывает InterruptedException.
  7. Если время ожидания истекло во время блокировки на шаге 4, возвращает false, иначе — true.
Определён в:
await в интерфейсе Condition
Параметры:
time — максимальное время ожидания
unit — единица измерения аргумента time
Возвращает:
false, если время ожидания достоверно истекло до возврата из метода, иначе true
Выбрасывает:
InterruptedException — если текущий поток прерван (и поддерживается прерывание при приостановке потока)

hasWaiters

protected final boolean hasWaiters()
Проверяет, ожидают ли этого условия какие-либо потоки. Реализует AbstractQueuedLongSynchronizer.hasWaiters(ConditionObject).
Возвращает:
true, если есть ожидающие потоки
Выбрасывает:
IllegalMonitorStateException — если AbstractQueuedLongSynchronizer.isHeldExclusively() возвращает false

getWaitQueueLength

protected final int getWaitQueueLength()
Возвращает оценочное количество потоков, ожидающих этого условия. Реализует AbstractQueuedLongSynchronizer.getWaitQueueLength(ConditionObject).
Возвращает:
оценочное количество ожидающих потоков
Выбрасывает:
IllegalMonitorStateException — если AbstractQueuedLongSynchronizer.isHeldExclusively() возвращает false

getWaitingThreads

protected final Collection<Thread> getWaitingThreads()
Возвращает коллекцию, содержащую потоки, которые могут ожидать этого Condition. Реализует AbstractQueuedLongSynchronizer.getWaitingThreads(ConditionObject).
Возвращает:
коллекцию потоков
Выбрасывает:
IllegalMonitorStateException — если AbstractQueuedLongSynchronizer.isHeldExclusively() возвращает false

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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