2008-03-22
Commons Pool的参数
早期的一些记录,未必是正确,仅仅是为了删除硬盘上的N多文字。
maxActive:池中最多的对象实例,实际上用来限制调用makeObject方法的个数。
maxIdle:
在borrowObject时有用。
如果池的size超过了maxIdle,则应该释放对象了。
如果池的size没有超过maxIdle,则把对象放到池中。
如果是shouldDestroy,则调用destroyObject方法。
minIdle:
是在驱逐线程在驱逐对象之后,应该添加多少个对象回去。但此时并没有调用makeObject。而是在borrow时认为还有对象,直接activeObject
maxWait:
在WHEN_EXHAUSTED_BLOCK时:
如果maxWait<=0时,则borrowObject则会wait();如果大于0,则wait(_maxWait);
_minEvictableIdleTimeMillis:
如果当前时间减去对象最后次使用的时间,如果超过了,则要removeObject.
_numTestsPerEvictionRun:
用来Evictor线程,用来做evict操作时,循环多少次用来删除CursorableLinkedList中的对象。
_testWhileIdle:
如果设置了testWhileIdle,首先会activateObject,然后validateObject,如果校验不通过,则passivateObject。
Evictor是个线程,里面的Thread.sleep的时间就是_timeBetweenEvictionRunsMillis。
returnObject实际上是addObjectToPool。
pool的数据结构是CursorableLinkedList。


评论