|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.ObjectAMETAS.util.threadpool.ThreadPool
AMETAS.util.threadpool.DynamicThreadPool
Diese Klasse Implementiert einen Thread-Pool dynamischer Größe. Hiermit ist es z.B. einfach möglich, Dienste zu schreiben, die Klientenanfragen mit Hilfe einer dynamischen aber begrenzten 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. Dem dynamischen Pool kann eine minimale und eine maximale
Zahl als Begrenzung der Anzahl von WorkerThreads
übergeben werden. Dabei legt die minimale Zahl sozusagen die
Grundausstattung des Pools fest. Diese Zahl von Threads wird
während der Erzeugung des Pools gestartet. Während der gesamten
Lebenszeit des Pools stehen diese Threads für Worker zur Verfügung
und werden nicht beendet. Die maximale Obergrenze für die
Thread-Anzahl gibt an, wieviele Threads zusätzlich dynamisch
Erzeugt und wieder Beendet werden können, um sich dem aktuellen
Aufkommen an Aufträgen (Workern) anzupassen. Die Zeitspanne, nach
der sich ein untätiger, dynamisch erzeugter Thread wieder beendet,
kann ebenfalls im Konstruktor angegeben werden. Ist die maximale
Anzahl von Threads mit der Ausführung von Workern beschäftigt, so
werden weitere Aufträge verzögert, bis ein Thread frei wird.
| Field Summary | |
static int |
DEFAULT_TIMEOUT
Voreinstellung für den Thread-Timeout, der festlegt, wie lange ein dynamischer Thread auf neue Worker warten soll. |
| Fields inherited from class AMETAS.util.threadpool.ThreadPool |
m_athrWorkers, m_nMaxThreads, m_sem |
| Constructor Summary | |
DynamicThreadPool(int nMaxThreads)
Konstruktor, der einen DynamicThreadPool erzeugt,
welcher zwischen 0 und nMaxThreads Threads
hält. |
|
DynamicThreadPool(int nMinThreads,
int nMaxThreads,
int nTimeout)
Konstruktor, der als Argumente die minimale und die maximale Anzahl der zu haltenden WorkerThreads als
Argument entgegennimmt. |
|
| Method Summary | |
void |
startNewWorker(Worker wrk)
Allokiert für den übergebenen Worker einen
DynamicWorkerThread oder erzeugt einen neuen,
wenn die Obergrenze für die Gesamtzahl der Threads noch nicht
erreicht 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 |
public static final int DEFAULT_TIMEOUT
| Constructor Detail |
public DynamicThreadPool(int nMinThreads,
int nMaxThreads,
int nTimeout)
WorkerThreads als
Argument entgegennimmt. Dieser Pool wird immer mindestens
nMinThreads betreiben, welche sofort einem
Worker zugeteilt werden können. Diese Zahl wird
bei einem höheren Aufkommen an gleichzeitig aktiven Workern
bis auf nMaxThreads gesteigert.
nMinThreads - minimale Anzahl der zu haltenden
WorkerThreadsnMaxThreads - maximale Anzahl der zu haltenden
WorkerThreadsnTimeout - Anzahl von Millisekunden, für die die
dynamisch erzeugten Threads nach Bearbeitung eines Workers in
Untätigkeit verharren, bevor sie sich selbständig beenden.public DynamicThreadPool(int nMaxThreads)
DynamicThreadPool erzeugt,
welcher zwischen 0 und nMaxThreads Threads
hält. Der Timeout der Threads wird auf
DEFAULT_TIMEOUT eingestellt.
nMaxThreads - maximale Anzahl der zu haltenden
WorkerThreads| Method Detail |
public void startNewWorker(Worker wrk)
Worker einen
DynamicWorkerThread oder erzeugt einen neuen,
wenn die Obergrenze für die Gesamtzahl der Threads noch nicht
erreicht ist. Ansonsten wird der Aufrufer solange blockiert,
bis ein Thread frei wird.
startNewWorker in class ThreadPoolwrk - Ein Worker, der von einem Aufrufer
erzeugt wurde und dessen Ausführung hier in Auftrag gegeben
wird.public java.lang.String toString()
toString in class ThreadPool
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||