Class SimulationExecutor
java.lang.Object
java.util.concurrent.AbstractExecutorService
java.util.concurrent.ThreadPoolExecutor
fr.ifremer.isisfish.simulator.launcher.SimulationExecutor
- All Implemented Interfaces:
Executor
,ExecutorService
Un executor qui utilise un certain type de
SimulatorLauncher
pour
executer les jobs soumis dans la queue de SimulationService
Les fonctionnalites en plus par rapport a un ThreadPoolExecutor
sont:
- la possibilite de suspendre l'executor puis ensuite de le relancer
- l'utilisation de beforeExecute pour fixer le
SimulatorLauncher
du job
Il est aussi possible d'ecoute l'etat de l'attribut pause
- Version:
- $Revision$ Last update : $Date$ By : $Author$
- Author:
- poussin
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor
ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy
-
Field Summary
Modifier and TypeFieldDescriptionprotected int
le nombre de thread utilise avant la pauseprotected SimulatorLauncher
le launcher a utilise pour les simulationsprotected boolean
vrai si cet executor est en pauseprotected PropertyChangeSupport
protected SimulationService
le simulation service qui a cree cet executor -
Constructor Summary
ConstructorDescriptionSimulationExecutor
(SimulationService simulationService, SimulatorLauncher launcher, SimulationQueue workQueue) -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
addPropertyChangeListener
(String propertyName, PropertyChangeListener listener) protected void
beforeExecute
(Thread t, Runnable r) Met les threads en attente si pause est vrai, et fixe leSimulatorLauncher
a utiliser pour par la tache.boolean
isPause()
void
pause()
demande au thread d'arreter de prendre de nouvelle tachevoid
void
removePropertyChangeListener
(String propertyName, PropertyChangeListener listener) void
resume()
indique au thread de recommencer a prendre de nouvelle tachevoid
setPause
(boolean pause) Change la valeur de la variable pause, si pause est alors vrai notifie tous les threads en attenteMethods inherited from class java.util.concurrent.ThreadPoolExecutor
afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, execute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, shutdown, shutdownNow, terminated, toString
Methods inherited from class java.util.concurrent.AbstractExecutorService
invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit
-
Field Details
-
propertyListeners
-
pause
protected boolean pausevrai si cet executor est en pause -
lastCorePoolSize
protected int lastCorePoolSizele nombre de thread utilise avant la pause -
simulationService
le simulation service qui a cree cet executor -
launcher
le launcher a utilise pour les simulations
-
-
Constructor Details
-
SimulationExecutor
public SimulationExecutor(SimulationService simulationService, SimulatorLauncher launcher, SimulationQueue workQueue)
-
-
Method Details
-
getSimulationService
-
getLauncher
-
addPropertyChangeListener
-
addPropertyChangeListener
-
removePropertyChangeListener
-
removePropertyChangeListener
-
beforeExecute
Met les threads en attente si pause est vrai, et fixe leSimulatorLauncher
a utiliser pour par la tache. Si la tache a deja unSimulatorLauncher
d'assigne, on ne fait pas la tache- Overrides:
beforeExecute
in classThreadPoolExecutor
- Parameters:
t
- le thread qui va executer la tacher
-
-
isPause
public boolean isPause() -
pause
public void pause()demande au thread d'arreter de prendre de nouvelle tache -
resume
public void resume()indique au thread de recommencer a prendre de nouvelle tache -
setPause
public void setPause(boolean pause) Change la valeur de la variable pause, si pause est alors vrai notifie tous les threads en attente- Parameters:
pause
- pause value to set
-