当前位置:  技术问答>java相关

那位牛人可以说说实例池的原理和实现??

    来源: 互联网  发布时间:2015-11-15

    本文导语:  u p | 我不是什么牛人,不过还是简单介绍一下我的想法吧,所谓的实例池,无非就是在内存中存在多个实例,这些实例的状态完全相同,有些类可能在创建实例的时候需要很多时间,对于有...

u p

|
我不是什么牛人,不过还是简单介绍一下我的想法吧,所谓的实例池,无非就是在内存中存在多个实例,这些实例的状态完全相同,有些类可能在创建实例的时候需要很多时间,对于有大量用户访问的系统来说,如果每个用户访问都要花费几秒钟创建新的实例显然不是一种好的做法,而且当用户使用完实例后又要释放资源这又要占用系统的大量时间。说了这么多,实例池无非是为了节省创建实例和卸载实例所需要的时间,另外,有些实例是有状态的,当某个用户访问时间以后,由于某种原因离开了,这样系统将保存用户的状态,将实例放入池中,当用户再次使用的时候系统将从池中选出一个实例,并且恢复他的状态。总之是减少创建和删除实例所花费的时间。

|
我补充一下study_body(珍惜每一天)说的,我也没做过,不过想来和连接池差不多
首先,在池初始化的时候生成一堆实例,并且置它们的状态为空闲。
比如,我们可以用对象数组存放实例,用另一个字符串数组存放状态。这样,我们通过下标就可以得到实例和它的状态。
用户调用一个实例的时候,遍历状态数组,如果找到一个空闲的实例,把他返回给用户,并置状态为使用。如果没有找到空闲的,或者让用户等待,或者再生成一个新的实例,加入实例数组,然后返回给用户,并置状态为使用。
在一般使用的时候,刚开始生程一定数量的实例,不够用的时候再增加。但是有一个上限值,超过上限,还没有空闲的实例,就应该让用户等待。
然后,用户用完以后,一定要释放实例。把这个实例再次置为空闲,把这个实例的所有内容清空(也就是让他看上去和new出来的一模一样)。
大致上应该就像这样。

    
 
 

您可能感兴趣的文章:

  • 可以有其他两个类的实例同时调用一个java实例的两个方法吗?
  • 既然在定义实例变量的时候可以初始化实例变量的值,那还要构造函数干吗?谢谢!
  • 近日看源码发现有public类,未经实例化就可以调用该类里面的static方法?
  • 用什么方法可以遍历一个类的所有实例?给点代码。谢谢
  • 请问为什麽在J2ee中客户端(测试时)用jndi定位enterprise bean的时候,可以把远程接口实例化?接口不是不可以生成对象的吗?
  • Android实现的可以调整透明度的图片查看器实例
  • 谁有Java的电子图书或实例或教程都可以,小弟我想学Java
  • 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
  • CSS可以做的几个令你叹为观止的实例分享
  • asp.net(C#)生成Code39条形码实例 条码枪可以扫描出
  • 有人可以说说EJB和放火墙的问题吗?谢谢了
  • 谁有可以仿真图形界面的unix仿真程序,或者说说如何安装unix的无盘工作站啊
  • 谁能说说用jbuilder5开发的Ejb企业组件过程(包括Sessionbean和实体Bean)来者有分,分不够可以加
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请大侠们推荐本关于操作系统原理的经典书籍(原版的也可以)谢谢
  • 请问linux下一个很简单的问题:我们的控制台下直接输入某个程序名就可以执行该程序,原理是什么?
  • C++ MultiMaps 成员 max_size():返回可以容纳的最大元素个数
  • 我从网上下载LUNUX然后用盘刻录了可以安装吗?如果可以请告诉我下载地址可以吗?谢谢,我学习用的!谢谢
  • C++ Bitsets 成员 size():返回可以容纳的位的个数
  • tc下可以,gcc下不可以.请告说我,怎样就都可以了
  • C++ Maps 成员 max_size():返回可以容纳的最大元素个数
  • 生产者消费者问题为什么不可以共用一个信号量,如果这个信号量可以设置取值固定为0到N,即当信号量取值为N的时候阻塞进程,是否也可以?
  • 网站英文/中文域名字符集即网站英文/中文域名可以包含哪些字符
  • weblogic可不可以当作jndi服务器使用?如果可以,请问如何管理?
  • 必看!程序员升级之路,看了可以少走很多弯路
  • 请问用ftp可以不可以把整个目录一起上传。
  • linux可不可以和windows共享??可以的话,该怎么做?
  • 怎样写一个shell,可以查看一个文件的内容,并且有翻页的内容,并可以打印的
  • 可以从硬盘上安装redhat吗?linux可以用ghost备份吗?
  • 学习unix,急需教程,请问哪里可以下载,或者谁可以提供这方面的材料!
  • 在线等,为什么我的代码原来可以运行,现在不可以了????TextPad
  • 为什么在网页中有的applet可以显示,有的不可以显示 在线等待!!!!!
  • 有什么可以在2k server下可以用的分区工具?
  • iconv可以用来转换文字编码,有没有可以用来识别编码的?
  • 为什么我在linux7.1中有些命令有时可以用有时不可以用?
  • 怎样让一个.SH文件在任何目录下都可以直接敲入文件名*.SH就可以运行?
  • 我发现在Redhat Linux中有个选项可以连上MSN,不知怎么才可以连上,谢谢


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3