模块  java.base
软件包  java.lang.ref

Class ReferenceQueue<T>


  • public class ReferenceQueue<T>
    extends Object
    参考队列,在检测到适当的可达性更改后,垃圾收集器将附加的注册引用对象附加到该引用队列。
    从以下版本开始:
    1.2
    • 构造方法详细信息

      • 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 - 如果timeout参数的值为负
        InterruptedException - 如果超时等待中断
      • remove

        public Reference<? extends T> remove()
                                      throws InterruptedException
        删除此队列中的下一个引用对象,阻塞直到一个可用。
        结果
        一个引用对象,阻塞直到一个可用
        异常
        InterruptedException - 如果等待中断