KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sape > carbon > services > threadpool > ThreadPool


1 /*
2  * The contents of this file are subject to the Sapient Public License
3  * Version 1.0 (the "License"); you may not use this file except in compliance
4  * with the License. You may obtain a copy of the License at
5  * http://carbon.sf.net/License.html.
6  *
7  * Software distributed under the License is distributed on an "AS IS" basis,
8  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
9  * the specific language governing rights and limitations under the License.
10  *
11  * The Original Code is The Carbon Component Framework.
12  *
13  * The Initial Developer of the Original Code is Sapient Corporation
14  *
15  * Copyright (C) 2003 Sapient Corporation. All Rights Reserved.
16  */

17
18 package org.sape.carbon.services.threadpool;
19
20 import java.util.List JavaDoc;
21
22 import org.sape.carbon.core.component.FunctionalInterface;
23
24 /**
25  * Thread pool components manage a number of Threads that can be used to
26  * execute miscellaneous tasks.
27  *
28  * <br>Copyright 2002 Sapient
29  * @since carbon 2.1
30  * @author Douglas Voet, Nov 5, 2002
31  * @version $Revision: 1.5 $($Author: dvoet $ / $Date: 2003/11/20 18:49:59 $)
32  */

33 public interface ThreadPool extends FunctionalInterface {
34
35     /**
36      * Queues a task for execution.
37      *
38      * @param task the Runnable object that will be executed
39      * @param taskName the name of the task, used for logging and tracking
40      * @return an object that can be used to track task status
41      */

42     TaskInfo execute(Runnable JavaDoc task, String JavaDoc taskName);
43
44     /**
45      * Queues a task for execution. Note that callbacks may execute on the
46      * pooled thread that executed the task.
47      *
48      * @param task the Runnable object that will be executed
49      * @param taskName the name of the task, used for logging and tracking
50      * @param callback the callback object that will be called when the task
51      * completes
52      * @return an object that can be used to track task status
53      */

54     TaskInfo execute(Runnable JavaDoc task, String JavaDoc taskName, TaskCallback callback);
55
56     /**
57      * Gets the number of tasks currently in the queue. This does not include
58      * the number of tasks currently executing.
59      * @return number of tasks in the queue
60      */

61     Integer JavaDoc getQueueSize();
62     
63     /**
64      * Gets the number of executions threads in the pool
65      * @return pool size
66      */

67     Integer JavaDoc getPoolSize();
68
69     /**
70      * Gets a read-only list of the tasks that failed during execution
71      * @return read-only list of the tasks that failed during execution
72      */

73     List JavaDoc getFailedTasks();
74 }
75
Popular Tags