`
mouer
  • 浏览: 101077 次
  • 性别: 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

    ### Apache Commons Pool:Java对象池化技术详解 #### 一、引言 在现代软件开发过程中,尤其是在基于Java的企业级应用开发中,资源管理和优化变得尤为重要。创建和销毁对象的成本通常较高,特别是在高并发场景下,...

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

    Apache Commons Pool 是一个Java对象池库,主要用于提供各种对象池化的实现,以便高效地管理和复用有限的资源。标题中的"commo-pool, commons-pool commons-pool commons-pool"可能是由于输入错误,正确的应该是...

    commons-pool2-2.8.1.jar

    Apache Commons Pool 是一个广泛使用的开源组件,主要用于提供对象池化的实现。在Java世界里,对象池化是一种优化资源管理的重要技术,通过复用已创建的对象,避免频繁的创建和销毁过程,从而提升系统性能。最新版本...

    commons-pool2-2.6.2.jar

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

    commons-pool2-2.6.0-bin.zip

    Apache Commons Pool2是一个Java对象池库,用于管理可重用对象。对象池是软件设计中的一个概念,它允许程序在需要时重复使用已创建的对象,而不是每次需要时都创建新的对象。这在处理资源密集型对象(如数据库连接或...

    commons-dbcp-1.4.jar和commons-pool-1.5.6.jar

    Apache Commons DBCP是Apache Commons项目的一部分,它提供了一个基于Apache Commons Pool的数据库连接池实现。数据库连接池是一种管理数据库连接的技术,通过复用已建立的数据库连接,减少创建和销毁连接的开销,...

    commons-pool-1.3.jar 和commons-dbcp-1.2.2.jar

    Apache Commons Pool是一个对象池设计模式的实现,它提供了一种在应用程序中高效管理和重用对象的方式。对象池的基本思想是预先创建一定数量的对象,当需要使用时,不再创建新的对象,而是从池中获取已经存在的对象...

    commons-pool2-2.5.0-bin.zip

    Apache Commons Pool 2 是一个广泛使用的对象池库,它的最新版本是 2.5.0。对象池在软件设计中是一种优化资源管理的技术,通过复用已创建的对象,避免频繁的创建和销毁过程,从而提高性能。Apache Commons Pool 2 ...

    commons-pool-1.6.jar.zip

    Apache Commons Pool 是Apache软件基金会的一个开源项目,它提供了一种基于池化概念的通用对象池API。对象池化是一种设计模式,它允许程序预先创建一组对象并保持它们处于就绪状态,以便在需要时快速分配,而不是...

    commons-pool2-2.4.2.jar

    Apache Commons Pool2是一个Java对象池库,用于管理资源对象,如数据库连接或网络套接字。这个库的主要目的是提高性能和资源效率,通过重用已创建的对象而不是每次需要时都创建新的。在给定的场景中,`commons-pool2...

    commons-pool2-2.4.2.zip

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

    commons-pool 等jar包

    DBCP(Database Connection Pool)是Apache Jakarta项目中的一个子项目,它利用了commons-pool对象池机制来实现数据库连接的复用,从而减少创建和释放数据库连接时的开销。Tomcat,一个广泛使用的Java应用服务器,...

    commons-pool-1.3.jar+commons-collections-3.2.1.jar

    Apache Commons Pool是Apache软件基金会的一个项目,提供了一个对象池化的实现。对象池化是一种优化资源管理的技术,通过预先创建并维护一组对象,避免频繁地创建和销毁对象带来的性能开销。在`commons-pool-1.3.jar...

    jedis-2.9.0+commons-pool2-2.4.2redis依赖包

    标题中的"jedis-2.9.0+commons-pool2-2.4.2redis依赖包"指的是一款基于Java实现的Redis客户端库Jedis的2.9.0版本,与Apache Commons Pool 2.4.2版本相结合的依赖包。这个组合主要用于优化Redis连接池管理,提高应用...

    commons-pool-1.6.jar

    Apache Commons Pool是一个高效的、基于接口的池化库,允许开发者为任何可池化的对象创建池。这个库的核心是`ObjectPool`接口,它定义了对象池的基本操作,如获取、归还对象以及池的统计信息。Apache Commons Pool...

    commons-pool2-2.10.0.jar

    Apache Commons Pool 是一个广泛使用的开源组件,主要用于提供对象池化的实现。在Java世界里,对象池化是一种优化资源管理的重要技术,通过对象池可以减少频繁创建和销毁对象带来的性能开销,提升系统效率。这里我们...

    commons-pool2-2.4.2和jedis-2.7.2

    `commons-pool2-2.4.2.jar`是Apache Commons Pool 2的实现,这是一个对象池设计模式的库。对象池是用于管理资源,如数据库连接或线程,以提高性能和效率的机制。在Java中,当频繁创建和销毁对象时,这可能导致大量的...

    commons-pool-1.5.5.jar.zip

    Apache Commons Pool 是一个广泛使用的开源项目,提供了一种高效的对象池化服务。本篇将详细讲解Apache Commons Pool 1.5.5版本的核心特性、工作原理以及如何在实际开发中应用。 Apache Commons Pool 是Apache软件...

Global site tag (gtag.js) - Google Analytics