新闻资讯
看你所看,想你所想

Java Pool

Java Pool(Java 池把间职)是为了减少资源创建、初始化的系统开销而采取的一种实现模式。

  • 中文名 Java 池
  • 外文名 Java Pool
  • 目的 减少资源创建、初始化的系统开销
  • 种类 连接池、线程池、实现池

简介

  Java Pool (Java 池)

  池(Pool)是为了减少资源创建、初始化的系统开销而采取的一种实现模式,在Ja画正川保段未模va中常见的池一般有:

连接池

  我们需要使用Connection Pool的情况都来自通常都是指网络连接,比如:DB connection, Socket的Connection,这些对象往往需要使用Pool来管理,因为这些对象的重复创建需要较长的时间,是系统性能的瓶颈。

  Connection Poo星为盟缩置句专l实现包括两类:第一种是受管的Connection Pool,需要实现JCA的Resource Adapter规范,通过J360百科NDI lookup出来ConnectionPool对象,然后调用受管Connection映编洲张群清交抓毫整Pool对象的getConnection方法获得写特connection,第二种是自己实现一见善敌硫毛个Connection的Object Pool,通过自定义的ConnectionFactory类获得一个connection。

  病安场鲜象超农处首映一种:受管的Connection Pool

  目前J2EE Container中常用的connection pool有:

  DB Connection Pool

  JMS Connection Pool

  LDAP Connec灯般球奏千方肉行令创tion Pool

  JCA Connection Pool

  DB Connection Pool即JDBC connection pool,基本上所有的J2EE容器都提供了实现,JMS connection pool一般的JMS Server都提供了实现,LDAP connection pool由LDAP Server提供实现, JCA connection pool需要自己实现resource adapter。

  第二种:实现一个Connection的Object Pool

  通常可以在已有第三方的Obje轻下统龙工唱态装无ct Pool上实现自己的Connection Pool,如apache的commons pool,如果非要从头开始当然也是可以的。通常如果是要用规范的API获取connection,如jdbc,jms,举个例子DriverManager.getConnection, C长张赶密空逐即小onnection.close, 为了使这个Connection Pool可以方便地用在各种jdbc驱动上,灯够而且为了使原来没有使用该Connection Pool的应用可以道直汉纪威下酒神方便地切换到该Connection Pool上,我们可能需要用到AOP参促,这样DriverManager.getConnection就是从pool中取出connecto走员非互吗教n(如果pool中有的话),Conn策源难销还段二权存号ection.close就是return给pool,从逻辑上释放。用OO的方法也是可以实现的。

线程池

  领完官获含应用程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间来等待事件发生。其他线程可能进入睡眠状态,并且仅定期被唤醒以轮循更改或更新状态信息,然后再次进入休眠状态。为了简化对这些线程的管理,.NET框架为每个进程提供了一个线程池,一个线程池有若干个等待操作状态,当一个等待操作完成时,线程池中的辅助线程会执行回调函数。线程池中的线程由系统管理,程序员不需老元志乱要费力于线程管理,可以集中精力处理应用程序任务。 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程.每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中.如果某个线程在托管代码中空闲(赶思杀如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙.如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会来自超过最大值.超过最大值的线360百科程可以排队,但他们要等到其他线程完成后才启动。

实现池的一般方已常续求呀图种越机王

  实现一个资源池,一般要实现以下方法: 1、用Vector作为池中存储元素的容器。之所以使用Vector,而不是Map、List等,是基于Vector线程安全考虑;

  2、实现池中元素的获取、释放功能;

  3、实现池的finalize方法,保证系统在垃圾回收时正地至消报确回收目前处于idle状态的资源,保证正在被使用的资源不被系统回收。

  <!---->

转载请注明出处安可林文章网 » Java Pool

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com