首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

关于对commons-pool组建的应用有关问题

2012-09-25 
关于对commons-pool组建的应用问题下载commons-pool在这里:http://commons.apache.org/pool/download_pool

关于对commons-pool组建的应用问题
下载commons-pool在这里:http://commons.apache.org/pool/download_pool.cgi

最近几天在做一个网络连接处理,之前考虑的是clone的方式产生对象来处理会话,这个当然不行了,于是就着手采用对象池的技术来解决问题


ObjectPool 定义了池相关操作的接口

GenericObjectPool 提供了后进先出(LIFO)与先进先出(FIFO)两种行为模式的池。默认情况是采用后进先出,即当有空闲对象时,调用borrowObject方法,返回最近时刻放进去的那个实例对象。这个行为是通过lifo这个属性控制的。


StackObjectPool 采用后进先出行为模式的池。(栈的特点,学过数据结构的都懂的)

SoftReferenceObjectPool 采用后进先出行为模式的池。池内对象被SoftReference包裹,允许垃圾回收器在有内存需要的时候删除这部分对象。

研究了下源码,GenericObjectPool 比较的复杂,另外应用实际的项目的话,除了搞好一些线程安全的问题(本身comons-pool也不是绝对的线程安全--相容的,为什么就看我另一批博客)一些参数的配置,要花时间去测试,所以就不考虑,StackObjectPool 接口实现的池,自身对对象有维护,在stack中,相比SoftReferenceObjectPool ,软引用,初始化一定数量,不够自动在heap取增加,内存不够,还有gc,重点就在这,有gc的辅助,现代gc本身也应该是相当的强大的,至于为啥呢么,有兴趣的javaer可以看下jvm的内存管理这方面的东西。
有兴趣的朋友一起讨论

热点排行