花了一天,認真把配置項梳理了一下,分類整理以下:html
// 0)構造poolConfig
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
poolConfig.setJmxEnabled(false);// 是否啓用統計,這裏不啓用
// 1)系統啓動
poolConfig.setMinIdle(config.getIntValue(MyConstants.MINIDLE));// 啓動時會有線程負責初始化這麼多個鏈接,一個線程負責測試
// 2)獲取對象相關的配置
// 獲取一個object是1)直接borrow->create->等待隊列可用+最大等待時長(最大等待時長的borrow)
poolConfig.setFairness(BaseObjectPoolConfig.DEFAULT_FAIRNESS);// 從隊列裏borrow時加鎖,默認值爲false,保持默認,後臺爲一個ReentrantLock鎖
poolConfig.setMaxTotal(config.getIntValue(MyConstants.MAXTOTAL));// 是否能夠直接create
poolConfig.setBlockWhenExhausted(config.getBooleanValue(MyConstants.BLOCKWHENEXHAUSTED));
poolConfig.setMaxWaitMillis(config.getLongValue(MyConstants.MAXWAIT));
poolConfig.setTestOnBorrow(config.getBooleanValue(MyConstants.TESTONBORROW));// borrow的時候,是否須要測試->調用validateObject
poolConfig.setTestOnCreate(config.getBooleanValue(MyConstants.TESTONCREATE));// create的時候,是否須要測試->調用validateObject
//.net
// 3)歸還對象時相關的配置
poolConfig.setMaxIdle(config.getIntValue(MyConstants.MAXIDLE));// 是否能夠歸還此對象?
poolConfig.setLifo(false);// 一旦肯定歸還,放入隊列頭仍是尾?
poolConfig.setTestOnReturn(config.getBooleanValue(MyConstants.TESTONRETURN));// return的時候,是否須要測試->調用validateObject線程
//
// 4)按期驅逐策略[比較重要,及時驅逐劣幣就靠這個了]
poolConfig.setEvictionPolicyClassName(BaseObjectPoolConfig.DEFAULT_EVICTION_POLICY_CLASS_NAME);// 默認值
poolConfig.setTimeBetweenEvictionRunsMillis(
config.getIntValue(MyConstants.TIMEBETWEENEVICTIONRUNSMILLIS));// evict驅逐線程的間隔週期
poolConfig.setNumTestsPerEvictionRun(BaseObjectPoolConfig.DEFAULT_NUM_TESTS_PER_EVICTION_RUN);// 每次進行驅逐測試的個數
poolConfig.setMinEvictableIdleTimeMillis(config.getLongValue(MyConstants.MINEVICTABLEIDLETIMEMILLIS));// 若是超過這段時間沒有被使用,則無條件被強制驅逐
poolConfig
.setSoftMinEvictableIdleTimeMillis(BaseObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS);// 若是當前idle的個數>minIdle,而且idle時長超過這個閾值(默認爲30分鐘),則馬上被驅逐
poolConfig.setTestWhileIdle(config.getBooleanValue(MyConstants.TESTWHILEIDLE));// idle時,經過了evict測試,判斷是否須要被測試->調用validateObject
//htm
網上其餘人寫的博客也不錯:能夠作作參考:對象
http://my.oschina.net/u/1381600/blog/601870blog
http://www.bubuko.com/infodetail-948811.html隊列