Class ConcurrentResourcePool<T>

  • All Implemented Interfaces:
    Iterable<T>

    public class ConcurrentResourcePool<T>
    extends Object
    implements Iterable<T>
    A pool of a resource. This create new instances of the resource on request until enough are created to deliver a unique one to all threads needing one concurrently and then reuse those instances in subsequent requests.
    Author:
    baldersheim
    • Constructor Detail

      • ConcurrentResourcePool

        public ConcurrentResourcePool​(ResourceFactory<T> factory)
      • ConcurrentResourcePool

        public ConcurrentResourcePool​(Supplier<T> factory)
    • Method Detail

      • alloc

        public final T alloc()
        Allocates an instance of the resource to the requestor. The resource will be allocated exclusively to the requestor until it calls free(instance).
        Returns:
        a reused or newly created instance of the resource
      • free

        public final void free​(T e)
        Frees an instance previously acquired bty alloc