Pool provides an interface for managing a pool of object instances.
Acquires an instance from the pool. This returns null if the pool is empty.
Releases an instance to the pool. This has no effect if the instance is null.