commons-pool2 6 - 总结

场景介绍

需要复用,但是创建开销比较大的对象
支持处理对象的有效性验证

概念

pooledObject:池对象
pooledObjectFactory:池对象工厂
objectPool:池
xxxConfig:各种配置

pooledObject

注意状态变换以及状态机

objectPool

idle和active概念

运行机制

borrowObject

用于借出对象

形式:
阻塞形式
非阻塞形式

returnObject

用于归还对象

验证机制

lazy验证

即testOnReturn,testOnBorrow等

non-lazy验证

abandon

处理allocated状态,超过一定时间没有用的pooledObj
特定条件触发

evict

处理idle状态
1.局部,pooledObj.evictTest
2.全局,根据evictConfig,evictPolicy进行的evict
定时触发

目前涉及的应用

jedis,会在之后的jedis源码阅读中介绍
dbcp

思考

code冗余,javadoc不清晰

难以接入,最方便就是继承默认的

流程太复杂,耦合性有点高,配置复杂
比如说evict这个东西出现在poolObject和objectPool里面
比如pooledObject要知道需不需要AbandonLog

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 节选自《redis开发与运维》 先来看一段client list的执行结果 输出结果的每一行代表一个客户端的信息,...
    一帅阅读 14,134评论 1 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,819评论 19 139
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,485评论 11 349
  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,208评论 1 51
  • 前几天,军哥从云南来深圳办事,好久不见相谈甚欢。说起这个哥们在朋友圈里也算是一个传奇人物。短短五年时间从一个职场部...
    李子锅阅读 3,933评论 1 3

友情链接更多精彩内容