Mercurial > hg > blitz_condensed
comparison src/EDU/oswego/cs/dl/util/concurrent/Barrier.java @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:3dc0c5604566 |
---|---|
1 | |
2 /* | |
3 File: Barrier.java | |
4 | |
5 Originally written by Doug Lea and released into the public domain. | |
6 This may be used for any purposes whatsoever without acknowledgment. | |
7 Thanks for the assistance and support of Sun Microsystems Labs, | |
8 and everyone contributing, testing, and using this code. | |
9 | |
10 History: | |
11 Date Who What | |
12 11Jun1998 dl Create public version | |
13 */ | |
14 | |
15 package EDU.oswego.cs.dl.util.concurrent; | |
16 | |
17 /** | |
18 * Barriers serve | |
19 * as synchronization points for groups of threads that | |
20 * must occasionally wait for each other. | |
21 * Barriers may support any of several methods that | |
22 * accomplish this synchronization. This interface | |
23 * merely expresses their minimal commonalities: | |
24 * <ul> | |
25 * <li> Every barrier is defined for a given number | |
26 * of <code>parties</code> -- the number of threads | |
27 * that must meet at the barrier point. (In all current | |
28 * implementations, this | |
29 * value is fixed upon construction of the Barrier.) | |
30 * <li> A barrier can become <code>broken</code> if | |
31 * one or more threads leave a barrier point prematurely, | |
32 * generally due to interruption or timeout. Corresponding | |
33 * synchronization methods in barriers fail, throwing | |
34 * BrokenBarrierException for other threads | |
35 * when barriers are in broken states. | |
36 * </ul> | |
37 * <p>[<a href="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html"> Introduction to this package. </a>] | |
38 | |
39 **/ | |
40 public interface Barrier { | |
41 | |
42 | |
43 /** | |
44 * Return the number of parties that must meet per barrier | |
45 * point. The number of parties is always at least 1. | |
46 **/ | |
47 | |
48 public int parties(); | |
49 | |
50 /** | |
51 * Returns true if the barrier has been compromised | |
52 * by threads leaving the barrier before a synchronization | |
53 * point (normally due to interruption or timeout). | |
54 * Barrier methods in implementation classes throw | |
55 * throw BrokenBarrierException upon detection of breakage. | |
56 * Implementations may also support some means | |
57 * to clear this status. | |
58 **/ | |
59 | |
60 public boolean broken(); | |
61 } |