java.lang.Object
cn.wjybxx.base.pool.DefaultObjectPool<T>
- 所有已实现的接口:
ObjectPool<T>,Supplier<T>
对象池的默认实现
队列 OR 栈
主要区别:栈结构会频繁使用栈顶元素,而队列结构的元素是平等的。 因此栈结构有以下特性: 1.如果复用对象存在bug,更容易发现。 2.如果池化的对象是List这类会扩容的对象,则只有栈顶部分的对象会扩容较大。- 作者:
- wjybxx date 2023/4/1
-
构造器概要
构造器构造器说明DefaultObjectPool(Supplier<? extends T> factory, ResetPolicy<? super T> resetPolicy) DefaultObjectPool(Supplier<? extends T> factory, ResetPolicy<? super T> resetPolicy, int initialCapacity) DefaultObjectPool(Supplier<? extends T> factory, ResetPolicy<? super T> resetPolicy, int initialCapacity, int maxCapacity) -
方法概要
修饰符和类型方法说明voidclear()删除此池中的所有可用对象get()intintmaxCount()voidreturnAll(Collection<? extends T> objects) 将指定的对象放入池中 - 重置策略却决于ResetPolicy。void将指定的对象放入池中 - 重置策略却决于ResetPolicy。
-
构造器详细资料
-
DefaultObjectPool
-
DefaultObjectPool
public DefaultObjectPool(Supplier<? extends T> factory, ResetPolicy<? super T> resetPolicy, int initialCapacity) -
DefaultObjectPool
public DefaultObjectPool(Supplier<? extends T> factory, ResetPolicy<? super T> resetPolicy, int initialCapacity, int maxCapacity) - 参数:
factory- 对象创建工厂resetPolicy- 重置方法initialCapacity- 支持0 - 0表示默认不初始化maxCapacity- 支持0 - 0表示不缓存对象
-
-
方法详细资料
-
get
-
returnOne
从接口复制的说明:ObjectPool将指定的对象放入池中 - 重置策略却决于ResetPolicy。- 指定者:
returnOne在接口中ObjectPool<T>- 参数:
object- 要回收的对象
-
returnAll
从接口复制的说明:ObjectPool将指定的对象放入池中 - 重置策略却决于ResetPolicy。- 指定者:
returnAll在接口中ObjectPool<T>- 参数:
objects- 要回收的对象
-
maxCount
public int maxCount()- 指定者:
maxCount在接口中ObjectPool<T>- 返回:
- 缓存池缓存对象数量上限
-
idleCount
public int idleCount()- 指定者:
idleCount在接口中ObjectPool<T>- 返回:
- 当前池中可用对象数
-
clear
public void clear()从接口复制的说明:ObjectPool删除此池中的所有可用对象- 指定者:
clear在接口中ObjectPool<T>
-