Patent ID: 8185906

Claim:
A method for managing a pool of computing threads, comprising: monitoring thread performance in a computing system having a thread pool with a number of threads on which to execute tasks of processes in a multitasking system that executes tasks in parallel in multiple threads, each process including one or more tasks to be executed by threads of the thread pool, including monitoring a period of time of inactivity of individual threads of the thread pool and closing threads that are inactive for a threshold period of time, wherein the thread pool distributes work in a top-down approach, where threads are assigned a place in the thread pool from top to bottom, and tasks of the processes are assigned to a first inactive thread starting from the top of the thread pool; storing data representing the thread performance with historical thread performance data to generate cumulative thread performance data; monitoring and identifying a current resource consumption of the thread pool; dynamically changing the number of threads in the thread pool based on the cumulative thread performance and the identifying current resource consumption, wherein dynamically changing the number of threads in the thread pool includes adding the threads to the bottom of the thread pool to expand the thread pool, or closing the threads that are inactive for the threshold period of time; and wherein the threads are returned to the top of the thread pool when execution of the one or more tasks by the threads are completed.