Browse Prior Art Database

System for Dispatching from Multiple Thread Pools

IP.com Disclosure Number: IPCOM000122861D
Original Publication Date: 1998-Jan-01
Included in the Prior Art Database: 2005-Apr-04
Document File: 4 page(s) / 85K

Publishing Venue

IBM

Related People

Howland, MJ: AUTHOR [+2]

Abstract

Disclosed is a method for transparently controlling (dispatching) multiple, independent pools of threads with individual threshold limits.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

System for Dispatching from Multiple Thread Pools

      Disclosed is a method for transparently controlling
(dispatching) multiple, independent pools of threads with individual
threshold limits.

      The environment is one in which multiple types of tasks need to
be created and dispatched with the minimum amount of overhead.  To
satisfy this requirement, pools of managed threads are established,
one pool exists for each type of task to be executed.  Two types of
threads service a pools requests, persistent and transient.  Each
type of task has imposed limits on the maximum and minimum number of
each type of thread.  Persistent threads are threads that, once
created, remain available for use (i.e., they are reused by the
pool).  Transient threads are threads that are created and destroyed
on demand.  The idea being that most requests for service are
satisfied by the pool of persistent threads.  Transient threads are
only used when  the load on the thread manager exceeds this
threshold.  The threshold is  unique to each pool manager, thus,
allowing control on the number of system resources allocated to each
type of task.  Threshold levels may  be calculated dynamically by the
dispatcher as conditions change.

As shown in Fig. 1, each thread pool consists of the following
objects:
  o  PoolDispatcher: An object responsible for coordination and
      dispatch of work.  A single instance of this object exists
      for each managed pool of threads.
  o  ManagedThread: An object responsible for the acceptance
      and execution of work.  1 to n instances of this object
      exist in one of two forms, persistent and transient.
  o  GenericThreadDispatchElement:  An abstract object that
      represents a unit of work to be done...