`
mouer
  • 浏览: 97217 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对象池化技术(2)--一个简单的实现(基于apache的commons-pool)

    博客分类:
  • J2SE
阅读更多

这几天没事的时候都在自己写池的通用方法..今天测试了下,性能超差..算了,还是用大牛的吧..要站在巨人肩膀上..

用到commons-pool-1.4

运行结果:


1.认识PoolableObjectFactory、ObjectPool和ObjectPoolFactory

在Pool组件中,对象池化的工作被划分给了三类对象:

* PoolableObjectFactory用于管理被池化的对象的产生、激活、挂起、校验和销毁;
* ObjectPool用于管理要被池化的对象的借出和归还,并通知PoolableObjectFactory完成相应的工作;
* ObjectPoolFactory则用于大量生成相同类型和设置的ObjectPool。

相应地,使用Pool组件的过程,也大体可以划分成“创立PoolableObjectFactory”、“使用ObjectPool”和可选的“利用ObjectPoolFactory”三种动作。


创立PoolableObjectFactory

Pool组件利用PoolableObjectFactory来照看被池化的对象。ObjectPool的实例在需要处理被池化的对象的产生、激活、挂起、校验和销毁工作时,就会调用跟它关联在一起的PoolableObjectFactory实例的相应方法来操作。

PoolableObjectFactory是在org.apache.commons.pool包中定义的一个接口。实际使用的时候需要利用这个接口的一个具体实现。Pool组件本身没有包含任何一种PoolableObjectFactory实现,需要根据情况自行创立。

实现PoolableObjectFactory接口,要重写一下方法:
1.Object makeObject()方法。这个方法用于每次取得新的实例时调用。
2.void activateObject(Object obj)方法。这个方法用于将对象“激活”――设置为适合开始使用的状态。
3.void passivateObject(Object obj)方法。这个方法用于将对象“挂起”――设置为适合开始休眠的状态。
4.boolean validateObject(Object obj)方法。这个方法用于校验一个具体的对象是否仍然有效,已失效的对象会被自动交给destroyObject方法销毁
5.void destroyObject(Object obj)方法。这个方法用于销毁被validateObject判定为已失效的对象。
分享到:
评论

相关推荐

    Apache的对象池化工具commons-pool

    当我们的应用中创建一个十分最重量级的对象的时候,往往为了节省资源成本,使用单例模式,整个的应用中就只有一个对象供大家使用。这样是节省了不少资源,也是大多数应用的做法。不过如果遇到并发量十分大的情况下,...

    commons-pool2-2.0-API文档-中文版.zip

    赠送jar包:commons-pool2-2.0.jar; 赠送原API文档:commons-pool2-2.0-javadoc.jar; 赠送源代码:commons-pool2-2.0-sources.jar; 赠送Maven依赖信息文件:commons-pool2-2.0.pom; 包含翻译后的API文档:...

    commons-pool2-2.10.0-API文档-中文版.zip

    赠送jar包:commons-pool2-2.10.0.jar; 赠送原API文档:commons-pool2-2.10.0-javadoc.jar; 赠送源代码:commons-pool2-2.10.0-sources.jar; 赠送Maven依赖信息文件:commons-pool2-2.10.0.pom; 包含翻译后的API...

    开发工具 commons-pool2-2.4.2

    开发工具 commons-pool2-...pool2-2.4.2开发工具 commons-pool2-2.4.2开发工具 commons-pool2-2.4.2开发工具 commons-pool2-2.4.2开发工具 commons-pool2-2.4.2开发工具 commons-pool2-2.4.2开发工具 commons-pool2-2

    commons-pool2-2.5.0-API文档-中英对照版.zip

    对应Maven信息:groupId:org.apache.commons,artifactId:commons-pool2,version:2.5.0 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...

    commons-pool2-2.3-API文档-中文版.zip

    赠送jar包:commons-pool2-2.3.jar; 赠送原API文档:commons-pool2-2.3-javadoc.jar; 赠送源代码:commons-pool2-2.3-sources.jar; 赠送Maven依赖信息文件:commons-pool2-2.3.pom; 包含翻译后的API文档:...

    commons-pool2-2.10.0-API文档-中英对照版.zip

    赠送jar包:commons-pool2-2.10.0.jar; 赠送原API文档:commons-pool2-2.10.0-javadoc.jar; 赠送源代码:commons-pool2-2.10.0-sources.jar; 赠送Maven依赖信息文件:commons-pool2-2.10.0.pom; 包含翻译后的API...

    java连接池有关jar:commons-pool-1.2.jar+commons-pool-1.3.jar+commons-pool.jar

    commons-pool-1.3.jar+commons-pool.jar;java连接池jar包java连接池;java连接池jar;commons-pool-1.2.jar;commons-pool-1.3.jar+commons-pool.jar;java连接池jar包java连接池;java连接池jar;commons-pool-1.2.jar;...

    commons-pool2-2.11.1-bin.zip

    DBCP(DataBase Connection Pool)是 apache common上的一个 java 连接池项目,也是 tomcat 使用的连接池组件,依赖 于Jakarta commons-pool 对象池机制,DBCP可以直接的在应用程序中使用。 使用DBCP会用到commons-...

    commons-pool.jar

    commons-pool-1.1.jar, commons-pool-1.2.jar, commons-pool-1.3-src.jar, commons-pool-1.3.jar, commons-pool-1.4.jar, commons-pool-1.5.1.jar, commons-pool-1.5.2-sources.jar, commons-pool-1.5.2.jar, ...

    commons-pool2-2.4.3-API文档-中文版.zip

    赠送jar包:commons-pool2-2.4.3.jar; 赠送原API文档:commons-pool2-2.4.3-javadoc.jar; 赠送源代码:commons-pool2-2.4.3-sources.jar; 赠送Maven依赖信息文件:commons-pool2-2.4.3.pom; 包含翻译后的API文档...

    commons-pool2-2.6.2.jar

    Redis 的Cluster集群搭建依赖的jar,优秀的开源对象池化组件apache-commons-pool2,它对对象池化操作进行了很好的封装,我们只需要根据自己的业务需求重写或实现部分接口即可,使用它可以快速的创建一个方便,简单,...

    commo-pool, commons-pool commons-pool commons-pool

    commo-pool, commons-pool commons-pool commons-pool

    commons-pool2-2.4.2.zip

    为了避免重新造轮子,我们可以使用优秀的开源对象池化组件apache-commons-pool2,它对对象池化操作进行了很好的封装,我们只需要根据自己的业务需求重写或实现部分接口即可,使用它可以快速的创建一个方便,简单,...

    commons-pool-1.5.6-bin.zip

    Apache commons-pool本质上是"对象池",即通过一定的规则来维护对象集合的容器;commos-pool在很多场景中,用来实现"连接池"/"任务worker池"等,大家常用的dbcp数据库连接池,也是基于commons-pool实现.

    commons-pool2-2.5.0-API文档-中文版.zip

    赠送jar包:commons-pool2-2.5.0.jar; 赠送原API文档:commons-pool2-2.5.0-javadoc.jar; 赠送源代码:commons-pool2-2.5.0-sources.jar; 赠送Maven依赖信息文件:commons-pool2-2.5.0.pom; 包含翻译后的API文档...

    commons-pool2-2.9.0-API文档-中文版.zip

    赠送jar包:commons-pool2-2.9.0.jar; 赠送原API文档:commons-pool2-2.9.0-javadoc.jar; 赠送源代码:commons-pool2-2.9.0-sources.jar; 赠送Maven依赖信息文件:commons-pool2-2.9.0.pom; 包含翻译后的API文档...

    commons-pool2-2.5.0-bin.zip

    commons-pool2-2.5.0-bin.zip commons-pool2-2.5.0.jar

    commons-pool2-2.4.2-API文档-中英对照版.zip

    对应Maven信息:groupId:org.apache.commons,artifactId:commons-pool2,version:2.4.2 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...

    com.springsource.org.apache.commons.pool-sources-1.5.3.jar

    com.springsource.org.apache.commons.pool-sources-1.5.3.jar源码

Global site tag (gtag.js) - Google Analytics