KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > proactive > core > util > ThreadStore


1 /*
2 * ################################################################
3 *
4 * ProActive: The Java(TM) library for Parallel, Distributed,
5 * Concurrent computing with Security and Mobility
6 *
7 * Copyright (C) 1997-2002 INRIA/University of Nice-Sophia Antipolis
8 * Contact: proactive-support@inria.fr
9 *
10 * This library is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public
12 * License as published by the Free Software Foundation; either
13 * version 2.1 of the License, or any later version.
14 *
15 * This library is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public
21 * License along with this library; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 * USA
24 *
25 * Initial developer(s): The ProActive Team
26 * http://www.inria.fr/oasis/ProActive/contacts.html
27 * Contributor(s):
28 *
29 * ################################################################
30 */

31 package org.objectweb.proactive.core.util;
32
33 /**
34  * <p>
35  * A class implementing this interface provides a sort of store where threads like
36  * customers can enter and exit. The store can open and close.
37  * The rule are that no thread can enter when the store is closed and that the
38  * store cannot close until all threads already inside exit.
39  * Like in any other stores, once the store is closing, no more Thread can enter.
40  * </p>
41  *
42  * @author ProActive Team
43  * @version 1.0, 2002/05
44  * @since ProActive 0.9.2
45  */

46 public interface ThreadStore {
47
48   /**
49    * Returns how many threads are in the store. This method is non blocking.
50    * @return how many threads are in the store.
51    */

52   public int threadCount();
53   
54   
55   /**
56    * Signals that a thread wants to enter the store. If the store is opened
57    * the call is non blocking.
58    * If the store is closed or closing the call is blocking until the store
59    * opens.
60    */

61   public void enter();
62
63
64   /**
65    * Signals that a thread exited the store. The call is non blocking.
66    */

67   public void exit();
68
69
70   /**
71    * Closes the store. The call is blocking until all threads
72    * currently in the store exit. No other thread can enter the store
73    * after this call.
74    * Therefore the store can be closing or closed.
75    */

76   public void close();
77
78
79   /**
80    * Opens the store. The call is non blocking. It allows the thread waiting to
81    * enter the store to proceed.
82    */

83   public void open();
84
85 }
86
Popular Tags