Class ConcurrentScheduler

  • All Implemented Interfaces:
    java.util.concurrent.Executor, Scheduler

    public class ConcurrentScheduler
    extends java.lang.Object
    implements Scheduler
    The ConcurrentScheduler object is used to schedule tasks for execution. This queues the task for the requested period of time before it is executed. It ensures that the delay is adhered to such that tasks can be timed for execution in an accurate way.
    Author:
    Niall Gallagher
    • Constructor Summary

      Constructors 
      Constructor Description
      ConcurrentScheduler​(java.lang.Class type)
      Constructor for the ConcurrentScheduler object.
      ConcurrentScheduler​(java.lang.Class type, int size)
      Constructor for the ConcurrentScheduler object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void execute​(java.lang.Runnable task)
      This will execute the task within the executor immediately as it uses a delay duration of zero milliseconds.
      void execute​(java.lang.Runnable task, long delay)
      This will execute the task within the executor after the time specified has expired.
      void execute​(java.lang.Runnable task, long delay, java.util.concurrent.TimeUnit unit)
      This will execute the task within the executor after the time specified has expired.
      void stop()
      This is used to stop the scheduler by interrupting all running tasks and shutting down the threads within the pool.
      void stop​(long wait)
      This is used to stop the scheduler by interrupting all running tasks and shutting down the threads within the pool.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ConcurrentScheduler

        public ConcurrentScheduler​(java.lang.Class type)
        Constructor for the ConcurrentScheduler object. This will create a scheduler with a fixed number of threads to use before execution. Depending on the types of task that are to be executed this should be increased for accuracy.
        Parameters:
        type - this is the type of the worker threads
      • ConcurrentScheduler

        public ConcurrentScheduler​(java.lang.Class type,
                                   int size)
        Constructor for the ConcurrentScheduler object. This will create a scheduler with a fixed number of threads to use before execution. Depending on the types of task that are to be executed this should be increased for accuracy.
        Parameters:
        type - this is the type of the worker threads
        size - this is the number of threads for the scheduler
    • Method Detail

      • execute

        public void execute​(java.lang.Runnable task)
        This will execute the task within the executor immediately as it uses a delay duration of zero milliseconds. This can be used if the scheduler is to be used as a thread pool.
        Specified by:
        execute in interface java.util.concurrent.Executor
        Parameters:
        task - this is the task to schedule for execution
      • execute

        public void execute​(java.lang.Runnable task,
                            long delay)
        This will execute the task within the executor after the time specified has expired. If the time specified is zero then it will be executed immediately. Once the scheduler has been stopped then this method will no longer accept runnable tasks.
        Specified by:
        execute in interface Scheduler
        Parameters:
        task - this is the task to schedule for execution
        delay - the time in milliseconds to wait for execution
      • execute

        public void execute​(java.lang.Runnable task,
                            long delay,
                            java.util.concurrent.TimeUnit unit)
        This will execute the task within the executor after the time specified has expired. If the time specified is zero then it will be executed immediately. Once the scheduler has been stopped then this method will no longer accept runnable tasks.
        Specified by:
        execute in interface Scheduler
        Parameters:
        task - this is the task to schedule for execution
        delay - this is the delay to wait before execution
        unit - this is the duration time unit to wait for
      • stop

        public void stop()
        This is used to stop the scheduler by interrupting all running tasks and shutting down the threads within the pool. This will return immediately once it has been stopped, and not further tasks will be accepted by this pool for execution.
      • stop

        public void stop​(long wait)
        This is used to stop the scheduler by interrupting all running tasks and shutting down the threads within the pool. This will return once it has been stopped, and no further tasks will be accepted by this pool for execution.
        Parameters:
        wait - the number of milliseconds to wait for it to stop