|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.vividsolutions.jump.workbench.ui.renderer.ThreadQueue
public class ThreadQueue
This thread queue executes at maximum N Runnables in parallel were N is a given number of worker threads that should be used. If N threads are running and busy each further incoming Runnable is queued until one of the threads has finished its current job. If a worker thread becomes idle (no more job in the queue) it is hold alive for 5 seconds. If during this period of time no new Runnable is enqueued the worker thread dies.
| Nested Class Summary | |
|---|---|
static interface |
ThreadQueue.Listener
If the number of running threads goes down to zero implementations of this interface are able to be informed. |
protected class |
ThreadQueue.Worker
Worker thread. |
| Field Summary | |
|---|---|
protected boolean |
disposed
Singals that the ThreadQueue is going to quit |
protected java.util.ArrayList |
listeners
List of Listeners |
protected int |
maxRunningThreads
max. |
protected java.util.LinkedList |
queuedRunnables
The queue of Runnables jobs waiting to be run |
protected int[] |
runningThreads
Number of running threads |
protected int |
waitingThreads
Number of threads that are currently idle |
static long |
WORKER_STAY_ALIVE_TIME
The time a worker thread stays alive if idle |
| Constructor Summary | |
|---|---|
ThreadQueue()
Creates a ThreadQueue with one worker thread. |
|
ThreadQueue(int maxRunningThreads)
Creates a ThreadQueue with a given number of worker threads. |
|
| Method Summary | |
|---|---|
void |
add(java.lang.Runnable runnable)
Adds a Runnables to the queue. |
void |
add(ThreadQueue.Listener listener)
Adds a Listener to this ThreadQueue. |
void |
clear()
Empties the queue of waiting Runnables. |
void |
dispose()
Shuts down the ThreadQueue. |
protected void |
fireAllRunningThreadsFinished()
Informs Listeners of the fact that the number of running threads went to zero. |
int |
getRunningThreads()
The number of currently running worker threads. |
void |
remove(ThreadQueue.Listener listener)
Removes a Listener from this ThreadQueue. |
int |
runningThreads()
The number of currently running worker threads. |
int |
waitingRunnables()
The number of currently waiting Runnables. |
int |
waitingThreads()
The number of currently idle worker threads. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final long WORKER_STAY_ALIVE_TIME
protected int[] runningThreads
protected int maxRunningThreads
protected int waitingThreads
protected java.util.LinkedList queuedRunnables
protected boolean disposed
protected java.util.ArrayList listeners
| Constructor Detail |
|---|
public ThreadQueue()
public ThreadQueue(int maxRunningThreads)
maxRunningThreads - the max. number of threads to be run parallel.| Method Detail |
|---|
public void add(ThreadQueue.Listener listener)
listener - the listener to add.public void remove(ThreadQueue.Listener listener)
listener - the listener to be removed.protected void fireAllRunningThreadsFinished()
public int runningThreads()
public int getRunningThreads()
public int waitingRunnables()
public int waitingThreads()
public void add(java.lang.Runnable runnable)
runnable - The Runnables to addpublic void clear()
public void dispose()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||