Package java.lang.ref

Class ReferenceQueue<T>

java.lang.Object
java.lang.ref.ReferenceQueue<T>

public class ReferenceQueue<T>
extends Object
The ReferenceQueue is the container on which reference objects are enqueued when the garbage collector detects the reachability type specified for the referent.
Since:
1.2
  • Field Summary

    Fields
    Modifier and Type Field Description
    static Reference<?> unenqueued  
  • Constructor Summary

    Constructors
    Constructor Description
    ReferenceQueue()
    Constructs a new instance of this class.
  • Method Summary

    Modifier and Type Method Description
    Reference<? extends T> poll()
    Returns the next available reference from the queue, removing it in the process.
    Reference<? extends T> remove()
    Returns the next available reference from the queue, removing it in the process.
    Reference<? extends T> remove​(long timeoutMillis)
    Returns the next available reference from the queue, removing it in the process.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • unenqueued

      public static Reference<?> unenqueued
  • Constructor Details

    • ReferenceQueue

      public ReferenceQueue()
      Constructs a new instance of this class.
  • Method Details

    • poll

      public Reference<? extends T> poll()
      Returns the next available reference from the queue, removing it in the process. Does not wait for a reference to become available.
      Returns:
      the next available reference, or null if no reference is immediately available
    • remove

      public Reference<? extends T> remove() throws InterruptedException
      Returns the next available reference from the queue, removing it in the process. Waits indefinitely for a reference to become available.
      Throws:
      InterruptedException - if the blocking call was interrupted
    • remove

      public Reference<? extends T> remove​(long timeoutMillis) throws InterruptedException
      Returns the next available reference from the queue, removing it in the process. Waits for a reference to become available or the given timeout period to elapse, whichever happens first.
      Parameters:
      timeoutMillis - maximum time to spend waiting for a reference object to become available. A value of 0 results in the method waiting indefinitely.
      Returns:
      the next available reference, or null if no reference becomes available within the timeout period
      Throws:
      IllegalArgumentException - if timeoutMillis < 0.
      InterruptedException - if the blocking call was interrupted