Class SimulationExecutor

All Implemented Interfaces:
Executor, ExecutorService

public class SimulationExecutor extends ThreadPoolExecutor
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
  • Field Details

    • propertyListeners

      protected PropertyChangeSupport propertyListeners
    • pause

      protected boolean pause
      vrai si cet executor est en pause
    • lastCorePoolSize

      protected int lastCorePoolSize
      le nombre de thread utilise avant la pause
    • simulationService

      protected SimulationService simulationService
      le simulation service qui a cree cet executor
    • launcher

      protected SimulatorLauncher launcher
      le launcher a utilise pour les simulations
  • Constructor Details

  • Method Details

    • getSimulationService

      public SimulationService getSimulationService()
    • getLauncher

      public SimulatorLauncher getLauncher()
    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener listener)
    • addPropertyChangeListener

      public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener listener)
    • removePropertyChangeListener

      public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
    • beforeExecute

      protected void beforeExecute(Thread t, Runnable r)
      Met les threads en attente si pause est vrai, et fixe le SimulatorLauncher a utiliser pour par la tache. Si la tache a deja un SimulatorLauncher d'assigne, on ne fait pas la tache
      Overrides:
      beforeExecute in class ThreadPoolExecutor
      Parameters:
      t - le thread qui va executer la tache
      r -
    • 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