http://shmilyaw-hotmail-com.iteye.com/blog/1986566
首先通过factory.makeObject来创建对象,然后通过validateObject验证对象,验证通过之后再passivateObject,将它加入到idleReferences里面。这里凡是创建的对象不管是不是合法的都会加入到allReferences。这个allReferences相当于一个记录本一样,所有打过交道的对象都会在他这边有备案。所以我们在查找一些对象引用的时候会用到它。
http://www.jianshu.com/p/b0189e01de35
-
lifo:连接池放池化对象方式,默认为true
true:放在空闲队列最前面
false:放在空闲队列最后面 -
fairness:等待线程拿空闲连接的方式,默认为false
true:相当于等待线程是在先进先出去拿空闲连接
-
maxWaitMillis:当连接池资源耗尽时,调用者最大阻塞的时间,超时将跑出异常。单位,毫秒数;默认为-1.表示永不超时. 默认值 -1
maxWait:commons-pool1中
-
minEvictableIdleTimeMillis:连接空闲的最小时间,达到此值后空闲连接将可能会被移除。负值(-1)表示不移除;默认值1000L 60L 30L
-
softMinEvictableIdleTimeMillis:连接空闲的最小时间,达到此值后空闲链接将会被移除,且保留“minIdle”个空闲连接数。负值(-1)表示不移除。默认值1000L 60L 30L
-
numTestsPerEvictionRun:默认值 3
-
evictionPolicyClassName:默认值
org.apache.commons.pool2.impl.DefaultEvictionPolicy
-
testOnCreate:默认值false
-
testOnBorrow:向调用者输出“链接”资源时,是否检测是有有效,如果无效则从连接池中移除,并尝试获取继续获取。默认为false。建议保持默认值.
-
testOnReturn:默认值false
-
testWhileIdle:向调用者输出“链接”对象时,是否检测它的空闲超时;默认为false。如果“链接”空闲超时,将会被移除;建议保持默认值。默认值false
-
timeBetweenEvictionRunsMillis:“空闲链接”检测线程,检测的周期,毫秒数。如果为负值,表示不运行“检测线程”。默认值 -1L
-
blockWhenExhausted:默认值true
-
jmxEnabled:默认值true
-
jmxNamePrefix:默认值
pool
-
jmxNameBase:默认值 null
-
maxTotal:链接池中最大连接数,默认值8
commons-pool1 中maxActive改成maxTotal
-
maxIdle:连接池中最大空闲的连接数,默认为8
-
minIdle: 连接池中最少空闲的连接数,默认为0
-
softMinEvictableIdleTimeMillis: 连接空闲的最小时间,达到此值后空闲链接将会被移除,且保留“minIdle”个空闲连接数。默认为-1.
-
numTestsPerEvictionRun: 对于“空闲链接”检测线程而言,每次检测的链接资源的个数。默认为3.
-
whenExhaustedAction: 当“连接池”中active数量达到阀值时,即“链接”资源耗尽时,连接池需要采取的手段, 默认为1:
0:抛出异常
1:阻塞,直到有可用链接资源
2:强制创建新的链接资源
相关推荐
通过分析这些图像和源码,我们可以了解到Apache Commons Pool2的内部工作机制,如对象的生命周期管理、池的配置和性能优化等方面的知识。此外,源码阅读也能帮助我们理解设计模式的应用,如工厂模式、池模式等,并能...
6. **使用示例**:在实际应用中,用户可以通过以下步骤使用Apache Commons Pool 2: - 引入依赖:在项目中添加`commons-pool2-2.10.0.jar`。 - 创建池配置:例如,`GenericObjectPoolConfig config = new ...
Apache Commons Pool2是实现这一目标的工具库。 Apache Commons Pool2的主要特点包括: 1. **对象池接口**:Pool2提供了一个通用的对象池接口(`ObjectPool`),它定义了基本的池操作,如借用、归还和验证对象。这...
Pool2库提供了基础的对象池接口和实现,包括基本的`ObjectPool`接口以及`GenericObjectPool`,后者是一个实现了`ObjectPool`接口的通用对象池类。此外,它还提供了各种配置选项和策略,如最大池大小、空闲超时等,以...
Apache Commons DBCP(Database Connection Pool)和Apache Commons Pool是两个在Java开发中常用的开源库,主要用于数据库连接池管理和对象池服务。它们是Apache软件基金会的项目,为Java应用程序提供了高效且可配置...
DBCP(Database Connection Pool)是Apache Jakarta项目中的一个子项目,它利用了commons-pool对象池机制来实现数据库连接的复用,从而减少创建和释放数据库连接时的开销。Tomcat,一个广泛使用的Java应用服务器,...
2. **对象池实现**:除了API,Commons Pool还提供了一些预定义的对象池实现,如`GenericObjectPool`,这是一个通用的对象池实现,支持基本的池策略,如最大活动对象数、空闲对象的最大数量等。 3. **池化策略**:...
Apache Commons Pool提供了多种实现,包括基于先进先出(FIFO)策略的`GenericObjectPool`,以及基于最大空闲时间的`GenericKeyedObjectPool`。 **数据库连接池(DBCP)** DBCP是Database Connection Pool的缩写,...
Apache Commons Pool 提供了一套通用的框架,支持不同类型的对象池实现,包括数据库连接池、线程池等。 二、Commons Pool 1.2 主要特性 1. **对象池API**:提供了一套完整的API接口,包括Poolable、PooledObject、...
在具体使用Apache Commons Pool时,我们需要创建一个实现了`ObjectPool`接口的对象,并指定池化对象的工厂。例如,如果我们想要创建一个线程池,我们可以使用`ThreadPool`类,它实现了`ObjectPool`接口并使用`...
Commons Pool 提供了一组接口和类,包括 `Poolable` 接口、`ObjectPool` 接口和各种实现类,如 `GenericObjectPool`。开发者可以通过这些工具来创建自定义的对象池,适应不同的应用场景。 接下来,Apache Commons ...
2. **多种池实现**:Apache Commons Pool 提供了多种池实现,如 `GenericObjectPool` 和 `GenericKeyedObjectPool`,它们分别支持无键和键值对对象的池化。这些实现提供了配置参数来调整池的行为,如最大活动对象数...
4. `jakarta-pool-1.5.2.jar`: 这是Apache Commons Pool的核心库文件,包含了所有必需的类和接口,用于实现对象池。 5. `jakarta-pool-1.5.2-sources.jar`: 源代码jar文件,可以用于查看和理解Pool库的内部工作原理...
Apache Commons Pool 2 是一个Java对象池库,用于管理和复用有限资源,如数据库连接、线程、数据缓冲等。这个库是Apache软件基金会开发的,版本号为2.9.0,它提供了高效的对象池化机制,有助于提高应用程序的性能和...
2. **API接口**: Commons Pool 提供了 `Poolable` 接口和 `ObjectPool` 接口,前者标记了可池化的对象,后者代表对象池并提供了对象的获取、归还、销毁等操作。 3. **基础类和实现**:库中包含了一些基础类,如 `...
在"commons-pool2-2.4.2-src"源码包中,我们可以深入理解Apache Commons Pool2的工作原理和实现细节。源码分析有助于开发者掌握如何设计和使用高效的对象池,并且可以定制自己的对象池策略。 1. **核心接口和类**:...
Apache Commons Pool是Java领域中广泛使用的一个对象池实现库,它提供了灵活、高效的对象池服务。本文将深入探讨对象池的概念,以及Apache Commons Pool的使用方法和核心特性。 一、对象池基础理论 对象池的基本...
8. **监控和统计**: 为了便于性能分析和调试,Apache Commons Pool 提供了统计信息和监控工具,可以跟踪对象的借用、归还、创建和销毁等操作。 在实际应用中,Apache Commons Pool 可以与数据库连接池(如C3P0或...
2. **线程安全**:Apache Commons Pool 1.5.4 为多线程环境设计,保证了在并发环境下的正确性。通过锁机制和同步策略,确保了对象池在多个线程同时访问时的稳定性和一致性。 3. **配置灵活性**:Pool 提供了丰富的...
Apache Commons Pool 提供了一种通用的框架,用于实现对象池。这个库的核心类包括`ObjectPool`接口、`BaseObjectPool`抽象类以及`GenericObjectPool`和`GenericKeyedObjectPool`等实现。`ObjectPool`接口定义了对象...