`
csbison
  • 浏览: 154834 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

common-pool笔记

阅读更多

   Apache默认提供的3种ObjectPool:
   
StackObjectPoolGenericObjectPoolSoftReferenceObejctPool

  1. public interface ObjectPool {   
  2.     Object borrowObject();   
  3.     void returnObject(Object borrowed);   
  4.     void addObject();
  5.     void setFactory(PoolableObjectFactory)
  6. }   

    StackObjectPoolGenericObjectPoolSoftReferenceObejctPool,一般使用StackObejctPool就可以了

 

    StackObjectPool-  java.util.Stack来维护对象池
    SoftReferenceObjectPool-
 java.util.ArrayList来维护对象池
    GenericObjectPool-
  org.apache.commons.collections.CursorableLinkedList来维护对象池


    

    使用PoolableObjectFactory来创建pool。而没有必要间接使用ObjectPoolFactory createPool()

 


    
问题:
    1.对应Socket,我需要真正实现的代码就是:
     1)
如果socket正在被使用;那么是不能被其他人同时使用的
     2)
如果socket使用完了;那不必关闭,可以设置状态并让其他人继续使用。

 

     3) 如果将要使用的socket已经close(),那么必须重新open()
     4)
maxWait,maxIdle的处理;maxIdle表示可以在空闲时期建立的socket连接数;
   

 

    2. dbcp的参考实现
      PoolingDataSource
间接实现了ObjectPool接口(使用GenericObjectPool),
     1)
可以borrowObject,borrowObject拿出来的Object就是Connection
     2)
在初始化的时候,DataSourceImpl还可以根据pool的大小来addObject()
      socket
相对于数据库连接中的connection
   
       getConnection() --> borrowObject();
       connection.close() -->returnObject(obj);

 

  设计和实现:
       1)需要实现ObjectPool接口,用于getSocketClient()
       2)
需要对SocketClient的封装,重载close()方法。
       3)PoolableObjectFactory
需要吗?
       4)
除了接口,commons-pool可以帮我做什么?
          
直接使用StackObjectPool,但是要自己实现PoolableObjectFactory 方法。

 

       5) 如何判断有空闲的连接?    

 

 

 

分享到:
评论

相关推荐

    redis3.2+jedis2.8.jar+common-pool2.jar+common-pool2-source.rar

    Common-Pool2-source.rar则包含了Common-Pool2的源代码,开发者可以通过阅读源码来了解其内部工作原理,进行更深入的定制或优化。 在使用Redis3.2+jedis2.8.jar进行Java开发时,首先需要在项目中引入Jedis库,配置...

    commons-pool2-2.0-API文档-中文版.zip

    赠送jar包:commons-pool2-2.0.jar; 赠送原API文档:commons-pool2-2.0-javadoc.jar; 赠送源代码:commons-pool2-2.0-sources.jar; 赠送Maven依赖信息文件:commons-pool2-2.0.pom; 包含翻译后的API文档:...

    common-pool2

    而`common-pool2`就是Apache Commons提供的一个通用对象池库,它是Jedis连接池的必备组件。 `common-pool2`是Apache Commons Pool的第二个主要版本,它提供了对对象池的实现,允许开发者高效地管理和重用对象,避免...

    最新连接redis数据库连接池commons-pool-2.5.0

    需要使用Redis连接池的话,还需commons-pool包,提供了强大的功能,包含最新的jar包

    commons-pool2-2.11.1-bin.zip

    DBCP(DataBase Connection Pool)是 apache common上的一个 java 连接池项目,也是 tomcat 使用的连接池组件,依赖 于Jakarta commons-pool 对象池机制,DBCP可以直接的在应用程序中使用。 使用DBCP会用到commons-...

    common-dbcp.jar,common-pool.jar,common-collections.jar

    commons-dbcp-1.4 jar java连接池. .commons-dbcp 是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要3个包:

    commons-pool2-2.5.0-API文档-中英对照版.zip

    赠送jar包:commons-pool2-2.5.0.jar; 赠送原API文档:commons-pool2-2.5.0-javadoc.jar; 赠送源代码:commons-pool2-2.5.0-sources.jar; 包含翻译后的API文档:commons-pool2-2.5.0-javadoc-API文档-中文...

    commons-pool2-2.8.1.jar

    最新版本“commons-pool2-2.8.1.jar”带来了更稳定、更高效的对象池服务。 Apache Commons Pool 2 是其第二代产品,相比第一代,它在API设计、性能和可扩展性方面都有显著提升。2.8.1版本是对该库的一次更新,修复...

    jedis-2.7.0.jar和commons-pool2-2.3.jar

    commons-pool2-2.3.jar commons-pool2.jar是一个十分常用的jar文件,commons-pool2.jar文件适用于java开发中的与连接池进行连接部分使用,如果您缺少这个jar文件马上下载commons-pool2.jar吧

    Jedis-Common-Pool

    标题中的“Jedis-Common-Pool”指的是Jedis,一个流行的Java客户端库,用于与Redis内存数据存储系统交互,以及Apache Commons Pool 2,这是一个对象池实现,Jedis使用它来管理Redis连接的生命周期,提高性能和资源...

    common-pool的eclipse源码+例子

    common-pool的eclipse源码+例子,可以直接导入到eclipse中运行,例子的代码放在src/main/java mh.test中,注意eclipse的jre版本不要用1.8,那样会出现duplicate method的错误!

    jedis 和 common-pool

    标题中的“jedis”和“common-pool”指的是在Java开发中常用的两个库,它们分别是Jedis和Apache Commons Pool。Jedis是专为处理Redis数据存储服务而设计的一个Java客户端,而Apache Commons Pool则是一个通用的对象...

    go-commons-pool, 用于golang的通用对象池.zip

    go-commons-pool, 用于golang的通用对象池 共享池 go公共池是用于 Golang的通用对象池,直接从 Apache公共池重写。特性支持自定义 PooledObjectFactory 。Rich pool配置选项,可以精确控制池对象生命周期。 请参见 ...

    commons-dbcp2-2.4.0.jar commons-pool2-2.4.2.jar等6个jar包

    spring-webmvc-5.2.6.RELEASE.jar、spring-web-5.2.6.RELEASE.jar、spring-jdbc-5.2.6.RELEASE.jar、mysql-connector-java-5.1.37-bin.jar、mybatis-spring-1.3.1.jar、commons-dbcp2-2.4.0.jar 、commons-pool2-...

    SpringBoot2.2+commons-pool2实现多Ftp连接池完整项目,开箱即用,经过长期生产使用稳定可靠

    使用JDK1.8、SpringBoot2.2.10.RELEASE、lombok1.18.8、guava23.0、hutool5.3.10、commons-pool2 2.7.0、tika1.22等实现多Ftp连接池实现,通过守护线程实现连接池内连接可用性校验,配置最大、最小连接个数防止Ftp...

    最新commons-pool与commons-dbcp

    标题中的“最新commons-pool与commons-dbcp”指的是Apache Commons中的两个重要组件,它们主要用于数据库连接管理和资源池化。Apache Commons是Apache软件基金会提供的一系列Java实用工具库,其中DBCP(Database ...

    common-image-3.1.1-API文档-中文版.zip

    赠送jar包:common-image-3.1.1.jar; 赠送原API文档:common-image-3.1.1-javadoc.jar; 赠送源代码:common-image-3.1.1-sources.jar; 赠送Maven依赖信息文件:common-image-3.1.1.pom; 包含翻译后的API文档:...

    common-io-3.1.1-API文档-中文版.zip

    赠送jar包:common-io-3.1.1.jar; 赠送原API文档:common-io-3.1.1-javadoc.jar; 赠送源代码:common-io-3.1.1-sources.jar; 赠送Maven依赖信息文件:common-io-3.1.1.pom; 包含翻译后的API文档:common-io-...

    proto-google-common-protos-1.17.0-API文档-中文版.zip

    赠送jar包:proto-google-common-protos-1.17.0.jar; 赠送原API文档:proto-google-common-protos-1.17.0-javadoc.jar; 赠送源代码:proto-google-common-protos-1.17.0-sources.jar; 赠送Maven依赖信息文件:...

    hadoop-common-2.2.0-bin-32.rar

    hadoop-common-2.2.0-bin-32.rarhadoop-common-2.2.0-bin-32.rarhadoop-common-2.2.0-bin-32.rarhadoop-common-2.2.0-bin-32.rarhadoop-common-2.2.0-bin-32.rarhadoop-common-2.2.0-bin-32.rarhadoop-common-2.2.0-...

Global site tag (gtag.js) - Google Analytics