KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > proactive > core > group > threadpool > ThreadInThePool


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.group.threadpool;
32
33
34 /** The threads that compose a thread pool. */
35 public class ThreadInThePool extends Thread JavaDoc {
36     protected static int counter;
37
38     protected synchronized static int getNextValue() {
39         return counter++;
40     }
41
42     /** The threadpool owner of this thread. */
43     public ThreadPool myPool;
44
45     /** The constructor associates the thread with a thread pool.
46      * @param o the thread pool
47      */

48     public ThreadInThePool(ThreadPool o) {
49         this.myPool = o;
50         this.setName("ThreadInThePool " + ThreadInThePool.getNextValue());
51     }
52
53     /** Looks for a pending job and executes it. */
54     public void run() {
55         Runnable JavaDoc target = null;
56         do {
57             target = this.myPool.getJobForThePendingQueue();
58             if (target != null) {
59                 target.run();
60                 this.myPool.controler.jobFinish();
61             }
62         } while (target != null);
63     }
64 }
65
Popular Tags