| ||||
|
Code - Class EDU.oswego.cs.dl.util.concurrent.Puttable1 /* 2 File: Puttable.java 3 4 Originally written by Doug Lea and released into the public domain. 5 This may be used for any purposes whatsoever without acknowledgment. 6 Thanks for the assistance and support of Sun Microsystems Labs, 7 and everyone contributing, testing, and using this code. 8 9 History: 10 Date Who What 11 11Jun1998 dl Create public version 12 */ 13 14 package EDU.oswego.cs.dl.util.concurrent; 15 16 /** 17 * This interface exists to enable stricter type checking 18 * for channels. A method argument or instance variable 19 * in a producer object can be declared as only a Puttable 20 * rather than a Channel, in which case a Java compiler 21 * will disallow take operations. 22 * <p> 23 * Full method descriptions appear in the Channel interface. 24 * <p>[<a HREF="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html"> Introduction to this package. </a>] 25 * @see Channel 26 * @see Takable 27 **/ 28 29 public interface Puttable { 30 31 32 /** 33 * Place item in the channel, possibly waiting indefinitely until 34 * it can be accepted. Channels implementing the BoundedChannel 35 * subinterface are generally guaranteed to block on puts upon 36 * reaching capacity, but other implementations may or may not block. 37 * @param item the element to be inserted. Should be non-null. 38 * @exception InterruptedException if the current thread has 39 * been interrupted at a point at which interruption 40 * is detected, in which case the element is guaranteed not 41 * to be inserted. Otherwise, on normal return, the element is guaranteed 42 * to have been inserted. 43 **/ 44 public void put(Object item) throws InterruptedException; 45 46 47 /** 48 * Place item in channel only if it can be accepted within 49 * msecs milliseconds. The time bound is interpreted in 50 * a coarse-grained, best-effort fashion. 51 * @param item the element to be inserted. Should be non-null. 52 * @param msecs the number of milliseconds to wait. If less than 53 * or equal to zero, the method does not perform any timed waits, 54 * but might still require 55 * access to a synchronization lock, which can impose unbounded 56 * delay if there is a lot of contention for the channel. 57 * @return true if accepted, else false 58 * @exception InterruptedException if the current thread has 59 * been interrupted at a point at which interruption 60 * is detected, in which case the element is guaranteed not 61 * to be inserted (i.e., is equivalent to a false return). 62 **/ 63 public boolean offer(Object item, long msecs) throws InterruptedException; 64 } 65 |
|||
Java API By Example, From Geeks To Geeks. |
Conditions of Use |
About Us
© 2002 - 2005, KickJava.com, or its affiliates
|