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.
-
Field Details
-
unenqueued
-
-
Constructor Details
-
ReferenceQueue
public ReferenceQueue()Constructs a new instance of this class.
-
-
Method Details
-
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
nullif no reference is immediately available
-
remove
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
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 of0results in the method waiting indefinitely.- Returns:
- the next available reference, or
nullif no reference becomes available within the timeout period - Throws:
IllegalArgumentException- iftimeoutMillis < 0.InterruptedException- if the blocking call was interrupted
-