Documentation of 'umontreal.iro.lecuyer.simprocs.ProcessSimulator' Java class
ProcessSimulator
umontreal.iro.lecuyer.simprocs

Class ProcessSimulator

  • Direct Known Subclasses:
    DSOLProcessSimulator, ThreadProcessSimulator


    public abstract class ProcessSimulator
    extends Simulator
    Defines a special type of simulator capable of managing processes. This class extends the Simulator class with methods providing basic facilities used by process simulators to suspend, resume, and kill processes. It also specifies a mechanism for creating control events used for process synchronization. These methods are not called directly by the user, but they need to be implemented by any framework managing processes.

    A process simulator is usually constructed by the newInstance method which selects the appropriate implementation based on system properties. It can also be constructed manually by calling the appropriate constructor explicitly. A default, implicit, simulator can also be used for compatibility with older programs. This can be done by calling the initDefault method or setting the ssj.processes property.

    • Constructor Detail

      • ProcessSimulator

        public ProcessSimulator()
    • Method Detail

      • currentProcess

        public SimProcess currentProcess()
        Returns the currently active process for this simulator.
      • createControlEvent

        public abstract Event createControlEvent(SimProcess process)
        Constructs and returns a new Event object used for synchronization. Such control events are used by process simulator to start a process or to resume it if it is already started.
      • delay

        public abstract void delay(SimProcess process,
                                   double delay)
        Suspends the execution of process and schedules it to resume its execution in delay units of simulation time. The state of the process also changes to DELAYED.
        Parameters:
        process - SimProcess variable to delay.
        delay - delay value, in simulation time units.
      • suspend

        public abstract void suspend(SimProcess process)
        Suspends process. If the process is EXECUTING, this suspends its execution. If the process is DELAYED, this cancels its control event. This method also places the process in the SUSPENDED state.
        Parameters:
        process - SimProcess variable to suspend.
      • kill

        public abstract void kill(SimProcess process)
        Terminates the life of process and sets its state to DEAD, after canceling its control event if there is one.
      • killAll

        public abstract void killAll()
        Kills all currently living (active, delayed, or suspended) processes managed by this simulator.
      • initDefault

        public static void initDefault()
        Initializes the default simulator to use processes. If the field Simulator.defaultSimulator is already initialized to a class extending ProcessSimulator, this method does nothing. Otherwise, it initializes the field to the return value of newInstance.

        Warning: this method must be called before any event or process is constructed, otherwise the program could return some exceptions like ClassCastException or NullPointerException. Alternatively, one can set the ssj.processes system property, which instructs this class to call this method at the time it is loaded.

        The aim of this method is to allow the user to use default process-oriented simulation without giving options to the Java Virtual Machine. See package simevents and class Simulator for more information about the default simulator.

      • newInstance

        public static ProcessSimulator newInstance()
        Constructs and returns a new process-oriented simulator. This method selects the concrete subclass of process simulator as follows. If the ssj.processSimulator system property is set, this gives the fully qualified class name of the process simulator to be instantiated. The given class must not be abstract, and must have a no-argument constructor. Otherwise, if the ssj.withThread system property is set, this returns a ThreadProcessSimulator. Otherwise, if the ssj.withDSOL system property is set, this returns a DSOLProcessSimulator instance. If no system property is set, this returns a ThreadProcessSimulator.

        For example, if a program is called using java -Dssj.withDSOL ..., it will use DSOL for process simulation.

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.