Class ThreadPool

java.lang.Object
org.sblim.cimclient.internal.util.ThreadPool

public class ThreadPool extends Object
Class ThreadPool implements a pool that manages threads and executes submitted tasks using this threads.
  • Constructor Details

    • ThreadPool

      public ThreadPool(int pMinPoolSize, int pMaxPoolSize, int pToleratedBacklog, long pToleratedIdle, ThreadGroup pGroup, String pWorkerName)
      Ctor
      Parameters:
      pMinPoolSize - The minimal pool size. The pool will always keep at least this number of worker threads alive even in no load situations.
      pMaxPoolSize - The maximal pool size. The pool will create up to that number of worker threads on heavy load.
      pToleratedBacklog - The task backlog that is tolerated before an additional worker is created
      pToleratedIdle - The idle time of a worker that is tolerated before the worker is destroyed
      pGroup - Then thread group to put the worker threads in
      pWorkerName - The name to use for worker threads
  • Method Details

    • execute

      public boolean execute(Runnable task)
      Submits a task for execution
      Parameters:
      task - The task
      Returns:
      true if the task was executed or enqueued, false otherwise.
    • removeWorker

      protected void removeWorker(org.sblim.cimclient.internal.util.ThreadPool.Worker worker)
      Removes a worker from the pool.
      Parameters:
      worker - The worker
    • getGroup

      protected ThreadGroup getGroup()
      Gets the associated thread group
      Returns:
      The thread group
    • getNextTask

      public Runnable getNextTask(org.sblim.cimclient.internal.util.ThreadPool.Worker worker) throws InterruptedException
      Get a new task. If no task was available during the timeout period the calling worker might be killed if more than the minimum number of workers exist
      Parameters:
      worker - The worker asking for a new task
      Returns:
      The next available task from the queue. If no task is available waits for idle timeout and returns null afterwards.
      Throws:
      InterruptedException - on interrupt
    • taskStarted

      public void taskStarted()
      Notifies the pool that at task was started. Effectively decrements the idle worker count.
    • taskCompleted

      public void taskCompleted()
      Notifies the pool that at task was completed. Effectively increments the idle worker count.
    • shutdown

      public void shutdown()
      Shuts down the thread pool and all workers