Java 程序优化之对象池

对象池概念:

如果一个类被频繁请求使用,那么不必每次都生成一个实例,可以将这个类都一些实例保存到一个“池”中,待需要使用的时候直接从“池”中获取。这个“池”就被称为对象池,它可以是一个数组,一个链表或者任何集合。

对象池其实就是一个集合,里面包含了我们需要的对象集合,当然这些对象都被池化了,也就是被对象池所管理,想要这样的对象,从池子里取个就行,但是用完得归还。对象池的对象最好是创建比较费时的大对象,如果是太简单的对象,再进入池化的时间比自己构建还多,就不划算了。可以理解对象池为单例模式的延展,多例模式,就那么几个对象实例,再多没有了。

在程序中使用数据库连接池和线程池,可以有效的改善系统在高并发下的性能,这是两个非常重要的性能组件,任何对性能敏感的系统,都需要考虑合理配置这两个组件。

下面以线程池为例介绍用法:

从导包开始

首先在Apache下载commons-pool2.rar包

下载地址:commons.apache.org/proper/comm…

以下为导入过程

显示已经导入成功。

下面创建一个简单的对象池工厂:

对象池使用例子如下:

输出结果:

在3个线程向对象池获取对象的过程中,一共建立三个对象,这三个对象不停的复用,当对象池被关闭时,使用的对象池工厂的destoryObject()方法,销毁对象,释放资源。

转载于:https://juejin.im/post/5cb99fc351882532c334c181

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值