Class ConcurrentScheduler

java.lang.Object
org.simpleframework.common.thread.ConcurrentScheduler
All Implemented Interfaces:
Executor, Scheduler

public class ConcurrentScheduler extends 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.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final SchedulerQueue
    This is the scheduler queue used to enque tasks to execute.
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    void
    This will execute the task within the executor immediately as it uses a delay duration of zero milliseconds.
    void
    execute(Runnable task, long delay)
    This will execute the task within the executor after the time specified has expired.
    void
    execute(Runnable task, long delay, TimeUnit unit)
    This will execute the task within the executor after the time specified has expired.
    void
    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
  • Field Details

    • queue

      private final SchedulerQueue queue
      This is the scheduler queue used to enque tasks to execute.
  • Constructor Details

    • ConcurrentScheduler

      public ConcurrentScheduler(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(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 Details

    • execute

      public void execute(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 Executor
      Parameters:
      task - this is the task to schedule for execution
    • execute

      public void execute(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(Runnable task, long delay, 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