Class ThreadPool


  • public class ThreadPool
    extends java.lang.Object
    Author:
    James M Snell (jasnell@us.ibm.com)
    • Constructor Summary

      Constructors 
      Constructor Description
      ThreadPool()  
      ThreadPool​(int maxPoolSize)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addWorker​(java.lang.Runnable worker)
      Adds a new worker to the pool
      void awaitShutdown()
      Await shutdown of the worker
      boolean awaitShutdown​(long timeout)
      Await shutdown of the worker
      void cleanup()  
      long getWorkerCount()
      Returns the total number of currently active workers
      void interruptAll()
      Forcefully interrupt all workers
      boolean isShutdown()
      Returns true if all workers have been shutdown
      boolean isShuttingDown()
      Returns true if all workers are in the process of shutting down
      void safeShutdown()
      Forcefully shutdown the pool
      void shutdown()
      Forcefully shutdown the pool
      void workerDone​(java.lang.Runnable worker, boolean restart)
      Used by MessageWorkers to notify the pool that it is done
      • Methods inherited from class java.lang.Object

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

      • log

        protected static org.apache.commons.logging.Log log
      • threads

        protected java.util.Map threads
      • threadcount

        protected long threadcount
      • _shutdown

        public boolean _shutdown
    • Constructor Detail

      • ThreadPool

        public ThreadPool()
      • ThreadPool

        public ThreadPool​(int maxPoolSize)
    • Method Detail

      • cleanup

        public void cleanup()
                     throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • isShutdown

        public boolean isShutdown()
        Returns true if all workers have been shutdown
      • isShuttingDown

        public boolean isShuttingDown()
        Returns true if all workers are in the process of shutting down
      • getWorkerCount

        public long getWorkerCount()
        Returns the total number of currently active workers
      • addWorker

        public void addWorker​(java.lang.Runnable worker)
        Adds a new worker to the pool
      • interruptAll

        public void interruptAll()
        Forcefully interrupt all workers
      • shutdown

        public void shutdown()
        Forcefully shutdown the pool
      • safeShutdown

        public void safeShutdown()
        Forcefully shutdown the pool
      • awaitShutdown

        public void awaitShutdown()
                           throws java.lang.InterruptedException
        Await shutdown of the worker
        Throws:
        java.lang.InterruptedException
      • awaitShutdown

        public boolean awaitShutdown​(long timeout)
                              throws java.lang.InterruptedException
        Await shutdown of the worker
        Throws:
        java.lang.InterruptedException
      • workerDone

        public void workerDone​(java.lang.Runnable worker,
                               boolean restart)
        Used by MessageWorkers to notify the pool that it is done