EDU.oswego.cs.dl.util.concurrent
Interface Takable
- BoundedChannel, Channel
- BoundedBuffer, BoundedLinkedQueue, BoundedPriorityQueue, CVBuffer, FIFOSlot, LinkedQueue, PipedChannel, SemaphoreControlledChannel, Slot, SynchronousChannel, WaitFreeQueue
This interface exists to enable stricter type checking
for channels. A method argument or instance variable
in a consumer object can be declared as only a Takable
rather than a Channel, in which case a Java compiler
will disallow put operations.
Full method descriptions appear in the Channel interface.
[
Introduction to this package. ]
Object | poll(long msecs) - Return and remove an item from channel only if one is available within
msecs milliseconds.
|
Object | take() - Return and remove an item from channel,
possibly waiting indefinitely until
such an item exists.
|
poll
public Object poll(long msecs)
throws InterruptedException
Return and remove an item from channel only if one is available within
msecs milliseconds. The time bound is interpreted in a coarse
grained, best-effort fashion.
msecs
- the number of milliseconds to wait. If less than
or equal to zero, the operation does not perform any timed waits,
but might still require
access to a synchronization lock, which can impose unbounded
delay if there is a lot of contention for the channel.
- some item, or null if the channel is empty.
take
public Object take()
throws InterruptedException
Return and remove an item from channel,
possibly waiting indefinitely until
such an item exists.
- some item from the channel. Different implementations
may guarantee various properties (such as FIFO) about that item