Package Documentation for org.apache.commons.pool

Object pooling API.

The `org.apache.commons.pool` package defines a simple interface for a pool of object instances, and a handful of base classes that may be useful when creating pool implementations.

The `pool` package itself doesn't define a specific object pooling implementation, but rather a contract that implementations may support in order to be fully interchangeable.

The `pool` package separates the way in which instances are pooled from the way in which they are created, resulting in a pair of interfaces:

{@link org.apache.commons.pool.ObjectPool ObjectPool}
  defines a simple object pooling interface, with methods for borrowing instances from and returning them to the pool.
{@link org.apache.commons.pool.PoolableObjectFactory PoolableObjectFactory}
  defines lifecycle methods for object instances contained within a pool. By associating a factory with a pool, the pool can create new object instances as needed.

{@link org.apache.commons.pool.ObjectPoolFactory ObjectPoolFactory} defines a simple factory for `ObjectPool`s, which may be useful for some applications.

The `pool` package also provides a keyed pool interface, which pools instances of multiple types, accessed according to an arbitrary key. See {@link org.apache.commons.pool.KeyedObjectPool KeyedObjectPool}, {@link org.apache.commons.pool.KeyedPoolableObjectFactory KeyedPoolableObjectFactory}, and {@link org.apache.commons.pool.KeyedObjectPoolFactory KeyedObjectPoolFactory}.