Code - Class EDU.oswego.cs.dl.util.concurrent.NullSync


1 /*
2   File: NullSync.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   1Aug1998 dl Create public version
12 */

13
14 package EDU.oswego.cs.dl.util.concurrent;
15
16 /**
17  * A No-Op implementation of Sync. Acquire never blocks,
18  * Attempt always succeeds, Release has no effect.
19  * However, acquire and release do detect interruption
20  * and throw InterruptedException. Also, the methods
21  * are synchronized, so preserve memory barrier properties
22  * of Syncs.
23  * <p>
24  * NullSyncs can be useful in optimizing classes when
25  * it is found that locking is not strictly necesssary.
26  *
27  * <p>[<a HREF="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html"> Introduction to this package. </a>]
28 **/

29
30
31 public class NullSync implements Sync {
32
33   public synchronized void acquire() throws InterruptedException {
34     if (Thread.interrupted()) throw new InterruptedException();
35   }
36
37   public synchronized boolean attempt(long msecs) throws InterruptedException {
38     if (Thread.interrupted()) throw new InterruptedException();
39     return true;
40   }
41
42   public synchronized void release() {}
43
44
45 }
46
47
48

Java API By Example, From Geeks To Geeks. | Conditions of Use | About Us © 2002 - 2005, KickJava.com, or its affiliates