commons pool2对象池入门

apache commons pool,官方称之为 Generic object pooling component,即通用的对象池组件。
The Apache Commons Pool open source software library provides an object-pooling API and a number of object pool implementations. 既然称为Generic通用的,那么它的源码抽象层次应该比较高,推测主要为方法的定义、模式的设计等,具体实现较少。源码应该较为简单,看懂不是什么难事。

commons pool2的源码在这里:

https://commons.apache.org/proper/commons-pool/download_pool.cgi

javadoc在这里:

https://commons.apache.org/proper/commons-pool/api-2.4.2/index.html

The org.apache.commons.pool2 package defines a handful of pooling interfaces and some base classes that may be useful when creating new pool implementations. 该包定义了一系列对象池接口,还有一些在创建具体对象池时会用到的抽象基类。

commons pool2 一共有三个最基本的接口:

1. ObjectPool<T>
2. PooledObjectFactory<T>
3. PooledObject<T> extends Comparable<PooledObject<T>>

ObjectPool代表一个对象池,通常在一个具体的对象池实现中,将此接口暴露给调用者。对象池对其持有的对象的生命周期负责,提供的方法有创建对象、获取对象、归还对象、销毁对象等。

PooledObjectFactory定义了一系列有关对象的生命周期的方法,供ObjectPool调用。PooledObjectFactory应为线程安全的。

这里写图片描述

PooledObject 是一个包裹类,用来包裹对象池中的对象,目的是跟踪池中对象的一些附加信息,比如对象状态。需要线程安全。

Defines the wrapper that is used to track the additional information, such as state, for the pooled objects.
Implementations of this class are required to be thread-safe.

上面三个超类的三角关系应该很明确了,ObjectPool持有PooledObjectFactory,对外暴露使用接口,PooledObjectFactory管理PooledObject的生命周期,PooledObject包裹池中对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值