AMETAS.util.threadpool
Class WorkerThread

java.lang.Object
  extended byjava.lang.Thread
      extended byAMETAS.util.threadpool.WorkerThread
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
DynamicWorkerThread

public class WorkerThread
extends java.lang.Thread

Objekte dieser Klasse werden in einem ThreadPool gehalten, um die Wroker eines Klienten (Aufrufers) in einem eigenen Thread auszuführen. Jeder WorkerThread wartet solange, bis ihm ein Worker zugewiesen wird. Diesen Worker führt der WorkerThread aus, indem er dessen work()-Methode aufruft. Nach Beendigung dieser Methode kehrt der Thread wieder in den Wartezustand zurück, bis ihm vom ThreadPool ein neuer Worker übergeben wird. Man könnte sagen, WorkerThreads sind beliebig oft wiederverwendbare Threads.

Since:
Version 2.1.0

Field Summary
protected  boolean m_bActive
          Interne Variable, die darüber entscheidet, ob der WorkerThread aktiv bleibt, oder sich selbst beenden soll.
protected  boolean m_bBusy
          Gibt an, ob dieser WorkerThread gerade arbeitet (true) oder frei ist (false).
protected  Monitor m_monSync
          Dient als Monitor zur Synchronisation der Zuteilung und Abarbeitung der Worker.
protected  int m_nNumericID
          Die fortlaufende Nummer dieses WorkerThreads.
protected  Semaphore m_sem
          Die Semaphore des Pools.
protected  Worker m_wrkWorker
          Der Worker dieses Threads.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
WorkerThread(Semaphore sem, int nNumericID)
          Konstruktor
 
Method Summary
 void deactivate()
          Weist diesen WorkerThread an, sich selbst sanft zu beenden.
 boolean isBusy()
          Gibt an, ob dieser WorkerThread gerade arbeitet (true) oder frei ist (false).
 void run()
          Implementierung der Methode java.lang.Thread.run().
 void startWorker(Worker wrk)
          Setzt einen neuen Worker in diesen Thread ein und startet ihn.
 java.lang.String toString()
          Liefert eine String-Repräsentation des WorkerThreads.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_wrkWorker

protected Worker m_wrkWorker
Der Worker dieses Threads.


m_sem

protected Semaphore m_sem
Die Semaphore des Pools. Sie muß von diesem WorkerThread wieder erhöht werden, damit neue Worker vom Pool angenommen werden können.


m_bBusy

protected boolean m_bBusy
Gibt an, ob dieser WorkerThread gerade arbeitet (true) oder frei ist (false).


m_bActive

protected boolean m_bActive
Interne Variable, die darüber entscheidet, ob der WorkerThread aktiv bleibt, oder sich selbst beenden soll.


m_monSync

protected Monitor m_monSync
Dient als Monitor zur Synchronisation der Zuteilung und Abarbeitung der Worker.


m_nNumericID

protected int m_nNumericID
Die fortlaufende Nummer dieses WorkerThreads.

Constructor Detail

WorkerThread

public WorkerThread(Semaphore sem,
                    int nNumericID)
Konstruktor

Parameters:
sem - Die Semaphore, die der ThreadPool verwendet, um die Zahl der betriebenen WorkerThreads zu kontrollieren.
Method Detail

startWorker

public void startWorker(Worker wrk)
Setzt einen neuen Worker in diesen Thread ein und startet ihn.

Parameters:
wrk - Ein neuer Worker, der von diesem WorkerThread abgearbeitet werden soll.

isBusy

public boolean isBusy()
Gibt an, ob dieser WorkerThread gerade arbeitet (true) oder frei ist (false).

Returns:
true falls diese WorkerThread gerade mit der Ausführung eines Workers beschäftigt ist, false sonst.

deactivate

public void deactivate()
Weist diesen WorkerThread an, sich selbst sanft zu beenden.


run

public void run()
Implementierung der Methode java.lang.Thread.run().


toString

public java.lang.String toString()
Liefert eine String-Repräsentation des WorkerThreads.