Class ThreadPool

java.lang.Object
org.apache.xmlrpc.util.ThreadPool

public class ThreadPool extends Object
Simple thread pool. A task is executed by obtaining a thread from the pool
  • Field Details

    • threadGroup

      private final ThreadGroup threadGroup
    • maxSize

      private final int maxSize
    • waitingThreads

      private final List waitingThreads
    • runningThreads

      private final List runningThreads
    • waitingTasks

      private final List waitingTasks
    • num

      private int num
  • Constructor Details

    • ThreadPool

      public ThreadPool(int pMaxSize, String pName)
      Creates a new instance.
      Parameters:
      pMaxSize - Maximum number of concurrent threads.
      pName - Thread group name.
  • Method Details

    • remove

      private void remove(ThreadPool.Poolable pPoolable)
    • repool

      void repool(ThreadPool.Poolable pPoolable)
    • startTask

      public boolean startTask(ThreadPool.Task pTask)
      Starts a task immediately.
      Parameters:
      pTask - The task being started.
      Returns:
      True, if the task could be started immediately. False, if the maxmimum number of concurrent tasks was exceeded. If so, you might consider to use the addTask(ThreadPool.Task) method instead.
    • getPoolable

      private ThreadPool.Poolable getPoolable(ThreadPool.Task pTask, boolean pQueue)
    • addTask

      public boolean addTask(ThreadPool.Task pTask)
      Deprecated.
      No longer in use.
      Adds a task for immediate or deferred execution.
      Parameters:
      pTask - The task being added.
      Returns:
      True, if the task was started immediately. False, if the task will be executed later.
    • shutdown

      public void shutdown()
      Closes the pool.
    • getMaxThreads

      public int getMaxThreads()
      Returns the maximum number of concurrent threads.
      Returns:
      Maximum number of threads.
    • getNumThreads

      public int getNumThreads()
      Returns the number of threads, which have actually been created, as opposed to the number of currently running threads.