Package com.yahoo.yolean.concurrent
Class ConcurrentResourcePool<T>
- java.lang.Object
-
- com.yahoo.yolean.concurrent.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 Summary
Constructors Constructor Description ConcurrentResourcePool(ResourceFactory<T> factory)
ConcurrentResourcePool(Supplier<T> factory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description T
alloc()
Allocates an instance of the resource to the requestor.void
free(T e)
Frees an instance previously acquired bty allocIterator<T>
iterator()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
ConcurrentResourcePool
public ConcurrentResourcePool(ResourceFactory<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
-
-