早期的一些记录,未必是正确,仅仅是为了删除硬盘上的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。

评论
发表评论

您还没有登录,请登录后发表评论