|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.ObjectAMETAS.util.threadpool.ThreadPool
Diese Klasse Implementiert einen Thread-Pool fester Größe. Hiermit ist es z.B. einfach möglich, Dienste zu schreiben, die Klientenanfragen mit Hilfe einer festen Anzahl von Threads bearbeiten, um die Bearbeitung zu parallelisieren. Dadurch wird die Bearbeitung wesentlich beschleunigt und die Wartezeit verkürzt sich für die Klienten.
Dem Pool können Worker-Objekte übergeben werden, die
in einem gerade freien WorkerThread ausgeführt
werden. Der Pool Erzeugt zu Beginn die festgelegte Anzahl von
WorkerThreads und kümmert sich um die Allokation
freier Threads wenn er einen Auftrag in Form eines
Worker-Objektes erhält. Er blockiert den Aufrufer
falls gerade alle Threads beschäftigt sind und verwendet de ersten
der frei wird.
| Field Summary | |
protected WorkerThread[] |
m_athrWorkers
Das Array, in dem alle Arbeiter-Threads dieses Pools gehalten werden. |
protected int |
m_nMaxThreads
Die Obergrenze für die Anzahl der Arbeiter-Threads. |
protected Semaphore |
m_sem
Diese Semaphore dient zur Synchronisation der Zugriffe auf die WorkerThreads. |
| Constructor Summary | |
protected |
ThreadPool()
DIeser Konstruktor wird von Subklassen benötigt. |
|
ThreadPool(int nMaxThreads)
Konstruktor, der die Anzahl der zu haltenden WorkerThreads als Argument entgegennimmt. |
| Method Summary | |
void |
startNewWorker(Worker wrk)
Allokiert für den übergebenen Worker einen
WorkerThread, sobald einer frei ist. |
java.lang.String |
toString()
Liefert eine String-Repräsentation des ThreadPools. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
protected WorkerThread[] m_athrWorkers
protected int m_nMaxThreads
protected Semaphore m_sem
| Constructor Detail |
public ThreadPool(int nMaxThreads)
WorkerThreads als Argument entgegennimmt.
nMaxThreads - Anzahl der zu haltenden
WorkerThreadsprotected ThreadPool()
| Method Detail |
public void startNewWorker(Worker wrk)
Worker einen
WorkerThread, sobald einer frei ist.
wrk - Ein Worker, der von einem Aufrufer
erzeugt wurde und dessen Ausführung hier in Auftrag gegeben
wird.public java.lang.String toString()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||