池化技术初探与ApachePool代码分析..docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
池化技术初探与ApachePool代码分析.

池化技术初探与Apache Pool代码分析池化技术简介池化技术就是把一些经常使用的,创建起来又比较费时间的对象事先创建好放在内存中,这样在用的时候就可以直接从中取出以提高程序执行效率的策略,同时使用完比的对象还可以归还到池中,减少了一部分创建对象的时间。但是这种方式会带来一定的内存开销,尤其是对于那些生成时开销不大的对象,使用池化技术反而会是性能降低。因此就需要从程序的相应时间和内存空间的消耗上找到一个最佳契合点。对于没有状态的对象(例如String),在重复使用之前,无需进行任何处理;对于有状态的对象(例如StringBuffer),在重复使用之前,就需要把它们恢复到等同于刚刚生成时的状态。由于条件的限制,恢复某个对象的状态的操作不可能实现了的话,就得把这个对象抛弃,改用新创建的实例了。由于在同一时刻可能会有很多个线程同时向池请求对象,因此在池化技术实现的时候要时刻考虑多线程的问题。关于多线程技术在池化技术中的应用,请参考《多线程技术在池化技术的应用》一文。Apache comman pool代码研究Apache comman pool (以下简称“Pool组件”)是一个用于在java程序中实现对象池化的组件,它只包含两个包,涉及到的类较少,类之间的关系也相对简单。要想使用Pool组件,需要获取相关jar文件并将其放入CLASSPATH即可。为了研究其内部实现,我们可以下载其源代码,这些东西都可以从/pool/download_pool.cgi/pool/download_pool.cgi下载,也可以从本篇文章的附件中获得。Pool组件的两个包Pool组件包含两个包:mons.pool和mons.pool.imp。包mons.pool为对象池定义了一个简单的接口,和一些在实现对象池时可能会用到的类。这个包并没有实现对象池,但是却规定了为了有更好的移植性而必须要遵循的规范。而包mons.pool.imp则提供了几种对象池的实现。mons.pool包详解改包中所包含的所有类如下表所示:所有接口F:\\downLoad\\Apache\\Apache\\commons-pool-1.5.5-bin\\commons-pool-1.5.5\\apidocs\\org\\apache\\commons\\pool\\KeyedObjectPool.html \o interface in mons.poolKeyedObjectPoolA keyed pooling interface.F:\\downLoad\\Apache\\Apache\\commons-pool-1.5.5-bin\\commons-pool-1.5.5\\apidocs\\org\\apache\\commons\\pool\\KeyedObjectPoolFactory.html \o interface in mons.poolKeyedObjectPoolFactoryA factory for creating?F:\\downLoad\\Apache\\Apache\\commons-pool-1.5.5-bin\\commons-pool-1.5.5\\apidocs\\org\\apache\\commons\\pool\\KeyedObjectPool.html \o interface in mons.poolKeyedObjectPools.F:\\downLoad\\Apache\\Apache\\commons-pool-1.5.5-bin\\commons-pool-1.5.5\\apidocs\\org\\apache\\commons\\pool\\KeyedPoolableObjectFactory.html \o interface in mons.poolKeyedPoolableObjectFactoryAn interface defining life-cycle methods for instances to be served by a?F:\\downLoad\\Apache\\Apache\\commons-pool-1.5.5-bin\\commons-pool-1.5.5\\apidocs\\org\\apache\\commons\\pool\\KeyedObjectPool.html \o interface in mons.poolKeyedObjectPool.F:\\downLoad\\Apache\\Apache\\commons-pool-1.5.5-bin\\commons-pool-1.5.5\\apidocs\\org\\apache\\commons\\pool\\ObjectP

您可能关注的文档

文档评论(0)

s4c2bg5I + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档