ReferenceQueue (Java SE 9 & JDK 9 ) (original) (raw)
- java.lang.ref.ReferenceQueue
public class ReferenceQueue
extends Object
Reference queues, to which registered reference objects are appended by the garbage collector after the appropriate reachability changes are detected.
Since:
1.2
Constructor Summary
Constructors
Constructor Description ReferenceQueue() Constructs a new reference-object queue. Method Summary
All Methods Instance Methods Concrete Methods
Modifier and Type Method Description Reference<? extends T> poll() Polls this queue to see if a reference object is available. Reference<? extends T> remove() Removes the next reference object in this queue, blocking until one becomes available. Reference<? extends T> remove(long timeout) Removes the next reference object in this queue, blocking until either one becomes available or the given timeout period expires. * ### Methods inherited from class java.lang.[Object](../../../java/lang/Object.html "class in java.lang") `[clone](../../../java/lang/Object.html#clone--), [equals](../../../java/lang/Object.html#equals-java.lang.Object-), [finalize](../../../java/lang/Object.html#finalize--), [getClass](../../../java/lang/Object.html#getClass--), [hashCode](../../../java/lang/Object.html#hashCode--), [notify](../../../java/lang/Object.html#notify--), [notifyAll](../../../java/lang/Object.html#notifyAll--), [toString](../../../java/lang/Object.html#toString--), [wait](../../../java/lang/Object.html#wait--), [wait](../../../java/lang/Object.html#wait-long-), [wait](../../../java/lang/Object.html#wait-long-int-)`
Constructor Detail
* #### ReferenceQueue public ReferenceQueue() Constructs a new reference-object queue.
Method Detail
* #### poll public [Reference](../../../java/lang/ref/Reference.html "class in java.lang.ref")<? extends [T](../../../java/lang/ref/ReferenceQueue.html "type parameter in ReferenceQueue")> 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 returns `null`. Returns: A reference object, if one was immediately available, otherwise `null` * #### remove public [Reference](../../../java/lang/ref/Reference.html "class in java.lang.ref")<? extends [T](../../../java/lang/ref/ReferenceQueue.html "type parameter in ReferenceQueue")> remove(long timeout) throws [IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang"), [InterruptedException](../../../java/lang/InterruptedException.html "class in java.lang") 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 the [Object.wait(long)](../../../java/lang/Object.html#wait-long-) method. Parameters: `timeout` \- If positive, block for up to `timeout` 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, otherwise `null` Throws: `[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")` \- If the value of the timeout argument is negative `[InterruptedException](../../../java/lang/InterruptedException.html "class in java.lang")` \- If the timeout wait is interrupted * #### remove public [Reference](../../../java/lang/ref/Reference.html "class in java.lang.ref")<? extends [T](../../../java/lang/ref/ReferenceQueue.html "type parameter in ReferenceQueue")> remove() throws [InterruptedException](../../../java/lang/InterruptedException.html "class in java.lang") Removes the next reference object in this queue, blocking until one becomes available. Returns: A reference object, blocking until one becomes available Throws: `[InterruptedException](../../../java/lang/InterruptedException.html "class in java.lang")` \- If the wait is interrupted
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2017, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.