Package java.lang.ref
Class ReferenceQueue<T>
- java.lang.Object
-
- java.lang.ref.ReferenceQueue<T>
-
public class ReferenceQueue<T> extends Object
TheReferenceQueueis 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
All Methods Instance Methods Concrete Methods 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 Detail
-
unenqueued
public static Reference<?> unenqueued
-
-
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
nullif 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 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
-
-