- java.lang.Object
-
- org.cryptomator.cryptolib.common.ObjectPool<T>
-
- Type Parameters:
T- Type of the pooled objects
public class ObjectPool<T> extends Object
A simple object pool for resources that are expensive to create but are needed frequently.Example Usage:
Supplier<Foo> fooFactory = () -> new Foo(); ObjectPool<Foo> fooPool = new ObjectPool(fooFactory); try (ObjectPool.Lease<Foo> lease = fooPool.get()) { // attempts to get a pooled Foo or invokes factory lease.get().foo(); // exclusively use Foo instance } // releases instance back to the pool when done
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classObjectPool.Lease<T>A holder for resource leased from anObjectPool.
-
Constructor Summary
Constructors Constructor Description ObjectPool(Supplier<T> factory)
-
-
-
Method Detail
-
get
public ObjectPool.Lease<T> get()
-
-