Class ThreadPool


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

      Constructors 
      Constructor Description
      ThreadPool​(int pMinPoolSize, int pMaxPoolSize, java.lang.ThreadGroup pGroup, java.lang.String pWorkerName)
      Ctor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean execute​(java.lang.Runnable task)  
      boolean execute​(java.lang.Runnable task, boolean enqueue)
      Submits a task for execution
      protected java.lang.ThreadGroup getGroup()
      Gets the associated thread group
      long getIdleTimeOutMs()
      Returns the idle timeout
      protected void removeThread​(org.sblim.wbem.util.ThreadPool.Worker worker)
      Removes a worker from the pool.
      void shutdown()
      Shuts down the thread pool and all workers
      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
      • Methods inherited from class java.lang.Object

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

      • ThreadPool

        public ThreadPool​(int pMinPoolSize,
                          int pMaxPoolSize,
                          java.lang.ThreadGroup pGroup,
                          java.lang.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 Detail

      • getIdleTimeOutMs

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

        public boolean execute​(java.lang.Runnable task)
      • execute

        public boolean execute​(java.lang.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 java.lang.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