org.logicalcobwebs.concurrent
Interface Puttable
- BoundedChannel, Channel
- LinkedQueue
public interface Puttable
This interface exists to enable stricter type checking
for channels. A method argument or instance variable
in a producer object can be declared as only a Puttable
rather than a Channel, in which case a Java compiler
will disallow take operations.
Full method descriptions appear in the Channel interface.
[
Introduction to this package. ]
boolean | offer(Object item, long msecs) - Place item in channel only if it can be accepted within
msecs milliseconds.
|
void | put(Object item) - Place item in the channel, possibly waiting indefinitely until
it can be accepted.
|
offer
public boolean offer(Object item,
long msecs)
throws InterruptedException
Place item in channel only if it can be accepted within
msecs milliseconds. The time bound is interpreted in
a coarse-grained, best-effort fashion.
item
- the element to be inserted. Should be non-null.msecs
- the number of milliseconds to wait. If less than
or equal to zero, the method 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.
- true if accepted, else false
put
public void put(Object item)
throws InterruptedException
Place item in the channel, possibly waiting indefinitely until
it can be accepted. Channels implementing the BoundedChannel
subinterface are generally guaranteed to block on puts upon
reaching capacity, but other implementations may or may not block.
item
- the element to be inserted. Should be non-null.