Java通用对象池GenericObjectPool<T>原理总结和自定义的Jedis管理池例子

在java中,有很多池管理的概念,典型的如线程池,数据库连接池,查看源码会发现这些池管理类都是继承于GenericObjectPool<T>,所以了解GenericObjectPool的工作机制,对进一步理解java中常用的池很有帮助,这样当我们使用这些池管理类时能做到心中有数,另外当我们需要用自定义的池管理类管理我们一些特殊的对象时,也能实现。

了解GenericObjectPool<T>,应该从其构造方法入手

GenericObjectPool<T>(PooledObjectFactory<T>factory, GenericObjectPoolConfig config)

创建一个对象池,需要传入两个参数PooledObjectFactory<T> factory和GenericObjectPoolConfigconfig,其中config是池管理类的一些参数配置,比如最小对象数量,最大对象数量,超时时间等,由于它有默认值,所以只需对关键的参数进行设置即可,比如最大对象管理数量。

下面以自创建的Jedis管理池为例:

JedisFactory.java

public class JedisFactory extendsBasePooledObjectFactory<Jedis>{

         publicPooledObject<Jedis> makeObject(){

                   Jedisjedis = new Jedis("127.0.0.1",6379);

                   jedis.connect();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值