Class ThreadPool


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

      • threadGroup

        private final java.lang.ThreadGroup threadGroup
      • maxSize

        private final int maxSize
      • waitingThreads

        private final java.util.List waitingThreads
      • runningThreads

        private final java.util.List runningThreads
      • waitingTasks

        private final java.util.List waitingTasks
      • num

        private int num
    • Constructor Detail

      • ThreadPool

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

      • 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.
      • 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.