public class MultiTaskManager extends Task implements RingOfDeathListener
Thread.State, Thread.UncaughtExceptionHandler
Modifier and Type | Field and Description |
---|---|
private AtomicInteger |
adjustTaskNumFactor
So viele Tasks sind beim naechsten Durchlauf zu entfernen
|
protected RingBuffer<MultiTask> |
freeTaskQueue |
protected RingBuffer<ResultData> |
inputDataQueue |
protected ArrayList<MultiTask> |
taskList |
private Semaphore |
terminationSemaphor |
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, persMgr, ringOfDeathListener, taskStepListeners
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
Constructor and Description |
---|
MultiTaskManager(ArchiveManager archiveMgr,
RingOfDeathListener rodl,
RingBuffer<ResultData> inputData,
String taskName) |
Modifier and Type | Method and Description |
---|---|
void |
addTask(MultiTask task)
Fuegt ein MultiTask hinzu und startet ihn, falls der MultitaskManager selbst schon gestartet ist.
|
int |
getTaskNum() |
void |
pushFreeTask(MultiTask task)
Diese Methode wird von einem Task aufgerufen, wenn dieser Task mit der Bearbeitung eines Auftrages fertig ist und einen neuen Auftrag entgegennehmen kann.
|
void |
removeTask()
Entfernt einen Subtask aus der Liste der verfuegbaren Tasks.
|
void |
ringOfDeath(Task doomedTask)
Wird von einem Task vor dem Verlassen der Hauptschleife aufgerufen, wenn dem Task dieses Interface im Konstruktor uebergeben wurde..
|
void |
run() |
void |
start() |
String |
toString() |
private void |
waitForSubtaskTermination() |
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary, terminateTask
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, stop, stop, suspend, yield
protected RingBuffer<ResultData> inputDataQueue
protected RingBuffer<MultiTask> freeTaskQueue
private AtomicInteger adjustTaskNumFactor
private Semaphore terminationSemaphor
public MultiTaskManager(ArchiveManager archiveMgr, RingOfDeathListener rodl, RingBuffer<ResultData> inputData, String taskName)
public void addTask(MultiTask task)
task
- ConfigurationException
public void removeTask()
public int getTaskNum()
public void pushFreeTask(MultiTask task)
task
- private void waitForSubtaskTermination()
public void ringOfDeath(Task doomedTask)
RingOfDeathListener
ringOfDeath
in interface RingOfDeathListener
doomedTask
- Task, der gerade beendet wird