Package org.apache.druid.collections
Class DefaultBlockingPool<T>
java.lang.Object
org.apache.druid.collections.DefaultBlockingPool<T>
- All Implemented Interfaces:
BlockingPool<T>
Pool that pre-generates objects up to a limit, then permits possibly-blocking "take" operations.
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultBlockingPool(com.google.common.base.Supplier<T> generator, int limit) DefaultBlockingPool(com.google.common.base.Supplier<T> generator, int limit, boolean parallelInit) -
Method Summary
Modifier and TypeMethodDescriptionlongReturns the count of the requests waiting to acquire a batch of resources.intlongintmaxSize()takeBatch(int elementNum) Take resources from the pool, waiting if necessary until the elements of the given number become available.takeBatch(int elementNum, long timeoutMs) Take resources from the pool, waiting up to the specified wait time if necessary for elements of the given number to become available.
-
Constructor Details
-
DefaultBlockingPool
-
DefaultBlockingPool
public DefaultBlockingPool(com.google.common.base.Supplier<T> generator, int limit, boolean parallelInit)
-
-
Method Details
-
maxSize
public int maxSize()- Specified by:
maxSizein interfaceBlockingPool<T>
-
getPoolSize
public int getPoolSize() -
takeBatch
Description copied from interface:BlockingPoolTake resources from the pool, waiting up to the specified wait time if necessary for elements of the given number to become available.- Specified by:
takeBatchin interfaceBlockingPool<T>- Parameters:
elementNum- number of resources to taketimeoutMs- maximum time to wait for resources, in milliseconds.- Returns:
- a list of resource holders. An empty list is returned if
elementNumresources aren't available.
-
takeBatch
Description copied from interface:BlockingPoolTake resources from the pool, waiting if necessary until the elements of the given number become available.- Specified by:
takeBatchin interfaceBlockingPool<T>- Parameters:
elementNum- number of resources to take- Returns:
- a list of resource holders. An empty list is returned if
elementNumresources aren't available.
-
getPendingRequests
public long getPendingRequests()Description copied from interface:BlockingPoolReturns the count of the requests waiting to acquire a batch of resources.- Specified by:
getPendingRequestsin interfaceBlockingPool<T>- Returns:
- count of pending requests
-
getUsedResourcesCount
public long getUsedResourcesCount()- Specified by:
getUsedResourcesCountin interfaceBlockingPool<T>- Returns:
- number of used buffers from the pool
-