知识大全 Java程序性能优化-对象复用“池”(3)[1]
Posted 知
篇首语:人要心强,树要皮硬。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java程序性能优化-对象复用“池”(3)[1]相关的知识,希望对你有一定的参考价值。
Java程序性能优化-对象复用“池”(3)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
对象复用 池 ( )
在第 章 Semaphore信号量 一节中 使用了信号量同步机制 实现了一个简单的对象池 读者可以参考相关代码 在此不予重复 该对象池使用一个对象数组和一个标志位布尔数组分别表示池中的对象和对象的可用性(一个对象一次只能被一个线程使用) 在获取对象时 在池中 找到一个可用的对象(标志位为空闲)返回 并将标志位设置为使用中 当对象使用完成后 标志位设置为空闲 归还对象池 等待下次使用
在实际开发中 开发人员完全不必自行开发对象池 在Apache中 已经提供了一个Jakarta Commons Pool对象池组件 可以直接使用
Jakarta Commons Pool定义的对象池接口如下
public interface ObjectPool<T>
T borrowObject()
void returnObject(T borrowed)
其中borrowObject()方法从对象池中取得一个对象 returnObject()方法在使用完成后 将对象返回给对象池
另一个重要的接口是PoolableObjectFactory 它告诉对象池如何创建一个对象 如何销毁一个对象 它的定义如下
public interface PoolableObjectFactory<T>
T makeObject()
void activateObject(T obj)
void passivateObject(T obj)
boolean validateObject(T obj)
void destroyObject(T obj)
PoolableObjectFactory接口的方法都将被对象池回调 以指导对象池在对象的生命周期中如何管理这些对象
PoolableObjectFactory接口的主要方法如下
makeObject() 定义如何创建一个新的对象实例
activateObject() 在对象从对象池取出前 会激活这对象
passivateObject() 在对象返回对象池时被调用
destroyObject() 对象从对象池中被销毁时 会执行这个方法
validateObject() 判断对象是否可用
cha138/Article/program/Java/gj/201311/27797相关参考
Java程序性能优化-对象复用“池”(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
Java程序性能优化-对象复用“池”(4)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java程序性能优化-对象复用“池”(2)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java程序性能优化-对象复用“池”(5) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
Java程序性能优化-对象复用“池”(4)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java程序性能优化-对象复用“池”(2)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
.对象的生成和大小的调整 JAVA程序设计中一个普遍的问题就是没有好好的利用JAVA语言本身提供的函数从而常常会生成大量的对象(或实例)由于系统不仅要花时间生成对象以后可能还需花时间对这些对象进
Java程序性能优化(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 十四对于boolean
Java程序性能优化-负载均衡(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java程序性能优化-代理模式(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!