Package java.lang.ref

Class 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 Detail

      • unenqueued

        public static Reference<?> unenqueued
    • Constructor Detail

      • ReferenceQueue

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

      • 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