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 poolSize) -
方法概要
修饰符和类型方法说明acquire()从池中租借一个对象voidclear()释放此池中的所有对象 (如果属于特殊资源,可不清理)get()该接口更多用于适配,不建议直接使用intvoid将指定的对象放入池中 - 重置策略却决于ResetPolicy。voidreleaseAll(Collection<? extends T> objects) 将指定的对象放入池中 - 重置策略却决于ResetPolicy。
-
构造器详细资料
-
DefaultObjectPool
-
DefaultObjectPool
public DefaultObjectPool(Supplier<? extends T> factory, ResetPolicy<? super T> resetPolicy, int poolSize) - 参数:
factory- 对象创建工厂resetPolicy- 重置方法poolSize- 缓存池大小;0表示不缓存对象
-
-
方法详细资料
-
getPoolSize
public int getPoolSize() -
get
从接口复制的说明:ObjectPool该接口更多用于适配,不建议直接使用 -
acquire
从接口复制的说明:ObjectPool从池中租借一个对象- 指定者:
acquire在接口中ObjectPool<T>- 返回:
- 如果池中有可用的对象,则返回缓存的对象,否则返回一个新的对象
-
release
从接口复制的说明:ObjectPool将指定的对象放入池中 - 重置策略却决于ResetPolicy。- 指定者:
release在接口中ObjectPool<T>- 参数:
object- 要回收的对象
-
releaseAll
从接口复制的说明:ObjectPool将指定的对象放入池中 - 重置策略却决于ResetPolicy。- 指定者:
releaseAll在接口中ObjectPool<T>- 参数:
objects- 要回收的对象
-
clear
public void clear()从接口复制的说明:ObjectPool释放此池中的所有对象 (如果属于特殊资源,可不清理)- 指定者:
clear在接口中ObjectPool<T>
-