Class ThreadPool

java.lang.Object
org.sblim.wbem.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, 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.
      pGroup - Then thread group to put the worker threads in
      pWorkerName - The name to use for worker threads
  • Method Details

    • getIdleTimeOutMs

      public long getIdleTimeOutMs()
      Returns the idle timeout
      Returns:
      The timeout
    • execute

      public boolean execute(Runnable task)
    • execute

      public boolean execute(Runnable task, boolean enqueue)
      Submits a task for execution
      Parameters:
      task - The task
      enqueue - if true the task will be enqueued if no worker is free, otherwise the task is executed immediately or not at all.
      Returns:
      true if the task was executed or enqueued, false otherwise.
    • getGroup

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

      public boolean taskCompleted(org.sblim.wbem.util.ThreadPool.Worker worker, boolean timedOut)
      Used by the worker to report task completion and ask for a new task
      Parameters:
      worker - The worker
      timedOut - true if the worker has been idle and reached timeout
      Returns:
      true if the worker shall stay alive, false if it shall shut down itself
    • removeThread

      protected void removeThread(org.sblim.wbem.util.ThreadPool.Worker worker)
      Removes a worker from the pool.
      Parameters:
      worker - The worker
    • shutdown

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