Package org.miaixz.bus.core.lang.pool
Interface ObjectPool<T>
- Type Parameters:
T- 对象类型
- All Superinterfaces:
AutoCloseable,Closeable,Serializable
- All Known Implementing Classes:
PartitionObjectPool,PoolPartition
对象池接口,提供:
borrowObject()对象借出。returnObject(Poolable)对象归还。
PoolConfig.getMaxIdle()控制,规则如下:
- 如果借出量很多,则不断扩容,直到达到
PoolConfig.getMaxSize() - 如果池对象闲置超出
PoolConfig.getMaxIdle(),则销毁。 - 实际使用中,池中对象可能少于
PoolConfig.getMinSize()
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Method Summary
Modifier and TypeMethodDescription借出对象,流程如下: 从池中取出对象 检查对象可用性 如果无可用对象,扩容池并创建新对象 继续取对象int获取已经借出的对象(正在使用的)对象数int获取空闲对象数,即在池中的对象数intgetTotal()获取持有对象总数(包括空闲对象 + 正在使用对象数)returnObject(Poolable<T> obj) 归还对象,流程如下: 检查对象可用性 不可用则销毁之 可用则入池
-
Method Details
-
borrowObject
借出对象,流程如下:- 从池中取出对象
- 检查对象可用性
- 如果无可用对象,扩容池并创建新对象
- 继续取对象
- Returns:
- 对象
-
returnObject
归还对象,流程如下:- 检查对象可用性
- 不可用则销毁之
- 可用则入池
- Parameters:
obj- 对象- Returns:
- this
-
getTotal
int getTotal()获取持有对象总数(包括空闲对象 + 正在使用对象数)- Returns:
- 总数
-
getIdleCount
int getIdleCount()获取空闲对象数,即在池中的对象数- Returns:
- 空闲对象数,-1表示此信息不可用
-
getActiveCount
int getActiveCount()获取已经借出的对象(正在使用的)对象数- Returns:
- 正在使用的对象数,-1表示此对象不可用
-