KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > stockonline > util > Synch


1 /*
2  * StockOnline: EJB 1.1 Benchmark.
3  *
4  * Copyright © Commonwealth Scientific and Industrial Research Organisation (CSIRO - www.csiro.au), Australia 2001, 2002, 2003.
5  *
6  * Contact: Paul.Brebner@csiro.au
7  *
8  * This library is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU Lesser General Public License as published by
10  * the Free Software Foundation; either version 2.1 of the License, or any
11  * later version.
12  *
13  * This library is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
16  * for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this library; if not, write to the Free Software Foundation,
20  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
21  *
22  * Originally developed for the CSIRO Middleware Technology Evaluation (MTE) Project, by
23  * the Software Architectures and Component Technologies Group, CSIRO Mathematical and Information Sciences
24  * Canberra and Sydney, Australia
25  *
26  * www.cmis.csiro.au/sact/
27  * www.cmis.csiro.au/adsat/mte.htm
28  *
29  * Initial developer(s): Shiping Chen, Paul Brebner, Lei Hu, Shuping Ran, Ian Gorton, Anna Liu.
30  * Contributor(s): ______________________.
31  */

32
33
34 //
35
//
36
// History:
37
// 10/08/2001 Shiping Initial coding based on the existing code
38
//
39
//
40
//
41

42 package stockonline.util;
43
44 import java.io.*;
45 import java.util.*;
46
47 /**
48 * Synch class is used to synchronise between main thread and client threads
49 * so that all client threads within the process can start at the same time.
50 */

51 public class Synch
52 {
53     private static int maxThreadCounter;
54     private static int threadCounter;
55     private static boolean go;
56
57     public Synch(int maxThreadCounter)
58     {
59         this.maxThreadCounter = maxThreadCounter;
60         this.threadCounter = 0;
61         this.go = false;
62     }
63
64     public synchronized void increase()
65     {
66         threadCounter++;
67         // System.out.println("threadCounter = " + threadCounter);
68
}
69
70     public static boolean setGo()
71     {
72         if(threadCounter>=maxThreadCounter)
73         {
74             go = true;
75         }
76         
77         return go;
78     }
79
80     public synchronized boolean getGo()
81     {
82         return go;
83     }
84
85     public static void sleep(int val)
86     {
87         try {
88             Thread.sleep(val);
89         } catch(java.lang.InterruptedException JavaDoc ex) {}
90     }
91 }
92
93
Popular Tags