Class Pool<T>

  • Direct Known Subclasses:
    Pool.Marshaller, Pool.TubePool, Pool.Unmarshaller

    public abstract class Pool<T>
    extends Object
    General-purpose object pool.

    In many parts of the runtime, we need to pool instances of objects that are expensive to create (such as JAXB objects, StAX parsers, Tube instances.)

    This class provides a default implementation of such a pool. TODO: improve the implementation

    Author:
    Kohsuke Kawaguchi
    • Constructor Detail

      • Pool

        public Pool()
    • Method Detail

      • take

        public final T take()
        Gets a new object from the pool.

        If no object is available in the pool, this method creates a new one.

        Returns:
        always non-null.
      • recycle

        public final void recycle​(T t)
        Returns an object back to the pool.
      • create

        protected abstract T create()
        Creates a new instance of object.

        This method is used when someone wants to take an object from an empty pool.

        Also note that multiple threads may call this method concurrently.