Класс ReferenceQueue<T>
java.lang.Object
java.lang.ref.ReferenceQueue<T>
public class ReferenceQueue<T> extends Object
Очереди ссылок, в которые объекты-ссылки, зарегистрированные в очереди, добавляются сборщиком мусора после обнаружения соответствующих изменений достижимости.
- С момента:
- 1.2
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ReferenceQueue() |
Создаёт новую очередь объектов-ссылок. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Reference<? extends T> |
poll() |
Проверяет очередь на наличие объекта-ссылки. Если объект-ссылка доступен без задержки, он удаляется из очереди и возвращается. В противном случае этот метод немедленно возвращает null. |
Reference<? extends T> |
remove() |
Удаляет следующий объект-ссылку в очереди, блокируя выполнение до тех пор, пока он не станет доступен. |
Reference<? extends T> |
remove |
Удаляет следующий объект-ссылку из очереди, блокируя выполнение до тех пор, пока он не станет доступен или пока не истечёт заданный период ожидания. |
Подробное описание конструкторов
ReferenceQueue
public ReferenceQueue()
Создаёт новую очередь объектов-ссылок.
Подробное описание методов
poll
public Reference<? extends T> poll()
Проверяет очередь на наличие объекта-ссылки. Если объект-ссылка доступен без задержки, он удаляется из очереди и возвращается. В противном случае этот метод немедленно возвращает
null. - Возвращает:
- Объект-ссылка, если он был немедленно доступен, в противном случае
null
remove
public Reference<? extends T> remove(long timeout) throws IllegalArgumentException, InterruptedException
Удаляет следующий объект-ссылку в очереди, блокируя выполнение до тех пор, пока он не станет доступен или пока не истечёт заданный период ожидания.
Этот метод не предоставляет гарантии реального времени: он планирует таймаут так, как будто вызывается метод Object.wait(long).
- Параметры:
-
timeout- Если положительное число, ожидать доtimeoutмиллисекунд, пока ссылка не будет добавлена в очередь. Если ноль, ожидать неограниченное время. - Возвращает:
- Объект-ссылка, если он был доступен в течение заданного периода ожидания, в противном случае
null - Исключения:
-
IllegalArgumentException- Если значение параметра таймаута отрицательное -
InterruptedException- Если ожидание таймаута прерывается
remove
public Reference<? extends T> remove() throws InterruptedException
Удаляет следующий объект-ссылку из очереди, блокируя выполнение до тех пор, пока он не станет доступен.
- Возвращает:
- Объект-ссылка, блокируя выполнение до тех пор, пока он не станет доступен
- Исключения:
-
InterruptedException- Если ожидание прерывается
© 1993, 2021, 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/17/docs/api/java.base/java/lang/ref/ReferenceQueue.html