Class BoundedResourcePool<T>
java.lang.Object
org.apache.hadoop.fs.impl.prefetch.ResourcePool<T>
org.apache.hadoop.fs.impl.prefetch.BoundedResourcePool<T>
- All Implemented Interfaces:
Closeable,AutoCloseable
Manages a fixed pool of resources.
Avoids creating a new resource if a previously created instance is already available.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionacquire()Acquires a resource blocking if necessary until one becomes available.voidclose()protected voidDerived classes may implement a way to cleanup each item.protected abstract TDerived classes must implement a way to create an instance of a resource.intNumber of items available to be acquired.intNumber of items created so far.voidReleases a previously acquired resource.toString()Acquires a resource blocking if one is immediately available.
-
Constructor Details
-
BoundedResourcePool
public BoundedResourcePool(int size) Constructs a resource pool of the given size.- Parameters:
size- the size of this pool. Cannot be changed post creation.- Throws:
IllegalArgumentException- if size is zero or negative.
-
-
Method Details
-
acquire
Acquires a resource blocking if necessary until one becomes available.- Specified by:
acquirein classResourcePool<T>- Returns:
- the acquired resource instance.
-
tryAcquire
Acquires a resource blocking if one is immediately available. Otherwise returns null.- Specified by:
tryAcquirein classResourcePool<T>- Returns:
- the acquired resource instance (if immediately available) or null.
-
release
Releases a previously acquired resource.- Specified by:
releasein classResourcePool<T>- Parameters:
item- the resource to release.- Throws:
IllegalArgumentException- if item is null.
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classResourcePool<T>
-
close
Derived classes may implement a way to cleanup each item.- Overrides:
closein classResourcePool<T>- Parameters:
item- the resource to close.
-
numCreated
public int numCreated()Number of items created so far. Mostly for testing purposes.- Returns:
- the count.
-
numAvailable
public int numAvailable()Number of items available to be acquired. Mostly for testing purposes.- Returns:
- the number available.
-
toString
-
createNew
Derived classes must implement a way to create an instance of a resource.- Specified by:
createNewin classResourcePool<T>- Returns:
- the created instance.
-