Reference queues, to which registered reference objects are appended by the
garbage collector after the appropriate reachability changes are detected.
- Author(s):
- Mark Reinhold
- Since:
- 1.2
Constructs a new reference-object queue.
static private class Lock { }; head = (r.next == r) ? null : r.next;
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
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 java.lang.Object.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:
java.lang.IllegalArgumentException
If the value of the timeout argument is negativejava.lang.InterruptedException
If the timeout wait is interrupted
if (timeout != 0) return null;
Removes the next reference object in this queue, blocking until one
becomes available.