Module java.base
Package java.lang.ref

Class ReferenceQueue<T>


  • public classReferenceQueue<T>extendsObject
    Reference queues, to which registered reference objects are appended by the garbage collector after the appropriate reachability changes are detected.
    Since:
    1.2
    • Constructor Detail

      • ReferenceQueue

        public ReferenceQueue()
        Constructs a new reference-object queue.
    • Method Detail

      • poll

        public Reference<? extendsT> poll()
        Polls this queue to see if a reference object is available. If one is available without further delay then it is removed from the queue and returned. Otherwise this method immediately returnsnull.
        Returns:
        A reference object, if one was immediately available, otherwisenull
      • remove

        public Reference<? extendsT> remove​(long timeout)                              throwsIllegalArgumentException,InterruptedException
        Removes the next reference object in this queue, blocking until either one becomes available or the given timeout period expires.

        This method does not offer real-time guarantees: It schedules the timeout as if by invoking theObject.wait(long) method.

        Parameters:
        timeout - If positive, block for up totimeout milliseconds while waiting for a reference to be added to this queue. If zero, block indefinitely.
        Returns:
        A reference object, if one was available within the specified timeout period, otherwisenull
        Throws:
        IllegalArgumentException - If the value of the timeout argument is negative
        InterruptedException - If the timeout wait is interrupted
      • remove

        public Reference<? extendsT> remove()                              throwsInterruptedException
        Removes the next reference object in this queue, blocking until one becomes available.
        Returns:
        A reference object, blocking until one becomes available
        Throws:
        InterruptedException - If the wait is interrupted