亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? genericobjectpool.java

?? 一個基于lucene&heritrix的搜索引擎
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
                final ObjectTimestampPair pair = (ObjectTimestampPair)(iter.previous());                final long idleTimeMilis = System.currentTimeMillis() - pair.tstamp;                if ((_minEvictableIdleTimeMillis > 0)                        && (idleTimeMilis > _minEvictableIdleTimeMillis)) {                    removeObject = true;                } else if ((_softMinEvictableIdleTimeMillis > 0)                        && (idleTimeMilis > _softMinEvictableIdleTimeMillis)                        && (getNumIdle() > getMinIdle())) {                    removeObject = true;                }                if(_testWhileIdle && !removeObject) {                    boolean active = false;                    try {                        _factory.activateObject(pair.value);                        active = true;                    } catch(Exception e) {                        removeObject=true;                    }                    if(active) {                        if(!_factory.validateObject(pair.value)) {                            removeObject=true;                        } else {                            try {                                _factory.passivateObject(pair.value);                            } catch(Exception e) {                                removeObject=true;                            }                        }                    }                }                if(removeObject) {                    try {                        iter.remove();                        _factory.destroyObject(pair.value);                    } catch(Exception e) {                        // ignored                    }                }            }            evictLastIndex = iter.previousIndex(); // resume from here        } // if !empty    }    /**     * Check to see if we are below our minimum number of objects     * if so enough to bring us back to our minimum.     */    private void ensureMinIdle() throws Exception {        // this method isn't synchronized so the        // calculateDeficit is done at the beginning        // as a loop limit and a second time inside the loop        // to stop when another thread already returned the        // needed objects        int objectDeficit = calculateDeficit();        for ( int j = 0 ; j < objectDeficit && calculateDeficit() > 0 ; j++ ) {            addObject();        }    }    private synchronized int calculateDeficit() {        int objectDeficit = getMinIdle() - getNumIdle();        if (_maxActive > 0) {            int growLimit = Math.max(0, getMaxActive() - getNumActive() - getNumIdle());            objectDeficit = Math.min(objectDeficit, growLimit);        }        return objectDeficit;    }    /**     * Create an object, and place it into the pool.     * addObject() is useful for "pre-loading" a pool with idle objects.     */    public synchronized void addObject() throws Exception {        assertOpen();        Object obj = _factory.makeObject();        addObjectToPool(obj, false);    }    //--- non-public methods ----------------------------------------    /**     * Start the eviction thread or service, or when     * <i>delay</i> is non-positive, stop it     * if it is already running.     */    protected synchronized void startEvictor(long delay) {        if(null != _evictor) {            _evictor.cancel();            _evictor = null;        }        if(delay > 0) {            _evictor = new Evictor();            EVICTION_TIMER.schedule(_evictor, delay, delay);        }    }    synchronized String debugInfo() {        StringBuffer buf = new StringBuffer();        buf.append("Active: ").append(getNumActive()).append("\n");        buf.append("Idle: ").append(getNumIdle()).append("\n");        buf.append("Idle Objects:\n");        Iterator it = _pool.iterator();        long time = System.currentTimeMillis();        while(it.hasNext()) {            ObjectTimestampPair pair = (ObjectTimestampPair)(it.next());            buf.append("\t").append(pair.value).append("\t").append(time - pair.tstamp).append("\n");        }        return buf.toString();    }    private int getNumTests() {        if(_numTestsPerEvictionRun >= 0) {            return Math.min(_numTestsPerEvictionRun, _pool.size());        } else {            return(int)(Math.ceil((double)_pool.size()/Math.abs((double)_numTestsPerEvictionRun)));        }    }    //--- inner classes ----------------------------------------------    /**     * The idle object evictor {@link TimerTask}.     * @see GenericObjectPool#setTimeBetweenEvictionRunsMillis     */    private class Evictor extends TimerTask {        public void run() {            try {                evict();            } catch(Exception e) {                // ignored            }            try {                ensureMinIdle();            } catch(Exception e) {                // ignored            }        }    }    /**     * A simple "struct" encapsulating the     * configuration information for a {@link GenericObjectPool}.     * @see GenericObjectPool#GenericObjectPool(org.apache.commons.pool.PoolableObjectFactory,org.apache.commons.pool.impl.GenericObjectPool.Config)     * @see GenericObjectPool#setConfig     */    public static class Config {        public int maxIdle = GenericObjectPool.DEFAULT_MAX_IDLE;        public int minIdle = GenericObjectPool.DEFAULT_MIN_IDLE;        public int maxActive = GenericObjectPool.DEFAULT_MAX_ACTIVE;        public long maxWait = GenericObjectPool.DEFAULT_MAX_WAIT;        public byte whenExhaustedAction = GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION;        public boolean testOnBorrow = GenericObjectPool.DEFAULT_TEST_ON_BORROW;        public boolean testOnReturn = GenericObjectPool.DEFAULT_TEST_ON_RETURN;        public boolean testWhileIdle = GenericObjectPool.DEFAULT_TEST_WHILE_IDLE;        public long timeBetweenEvictionRunsMillis = GenericObjectPool.DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS;        public int numTestsPerEvictionRun =  GenericObjectPool.DEFAULT_NUM_TESTS_PER_EVICTION_RUN;        public long minEvictableIdleTimeMillis = GenericObjectPool.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS;        public long softMinEvictableIdleTimeMillis = GenericObjectPool.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS;    }    //--- private attributes ---------------------------------------    /**     * The cap on the number of idle instances in the pool.     * @see #setMaxIdle     * @see #getMaxIdle     */    private int _maxIdle = DEFAULT_MAX_IDLE;    /**    * The cap on the minimum number of idle instances in the pool.    * @see #setMinIdle    * @see #getMinIdle    */    private int _minIdle = DEFAULT_MIN_IDLE;    /**     * The cap on the total number of active instances from the pool.     * @see #setMaxActive     * @see #getMaxActive     */    protected int _maxActive = DEFAULT_MAX_ACTIVE;    /**     * The maximum amount of time (in millis) the     * {@link #borrowObject} method should block before throwing     * an exception when the pool is exhausted and the     * {@link #getWhenExhaustedAction "when exhausted" action} is     * {@link #WHEN_EXHAUSTED_BLOCK}.     *     * When less than 0, the {@link #borrowObject} method     * may block indefinitely.     *     * @see #setMaxWait     * @see #getMaxWait     * @see #WHEN_EXHAUSTED_BLOCK     * @see #setWhenExhaustedAction     * @see #getWhenExhaustedAction     */    protected long _maxWait = DEFAULT_MAX_WAIT;    /**     * The action to take when the {@link #borrowObject} method     * is invoked when the pool is exhausted (the maximum number     * of "active" objects has been reached).     *     * @see #WHEN_EXHAUSTED_BLOCK     * @see #WHEN_EXHAUSTED_FAIL     * @see #WHEN_EXHAUSTED_GROW     * @see #DEFAULT_WHEN_EXHAUSTED_ACTION     * @see #setWhenExhaustedAction     * @see #getWhenExhaustedAction     */    protected byte _whenExhaustedAction = DEFAULT_WHEN_EXHAUSTED_ACTION;    /**     * When <tt>true</tt>, objects will be     * {@link PoolableObjectFactory#validateObject validated}     * before being returned by the {@link #borrowObject}     * method.  If the object fails to validate,     * it will be dropped from the pool, and we will attempt     * to borrow another.     *     * @see #setTestOnBorrow     * @see #getTestOnBorrow     */    protected boolean _testOnBorrow = DEFAULT_TEST_ON_BORROW;    /**     * When <tt>true</tt>, objects will be     * {@link PoolableObjectFactory#validateObject validated}     * before being returned to the pool within the     * {@link #returnObject}.     *     * @see #getTestOnReturn     * @see #setTestOnReturn     */    private boolean _testOnReturn = DEFAULT_TEST_ON_RETURN;    /**     * When <tt>true</tt>, objects will be     * {@link PoolableObjectFactory#validateObject validated}     * by the idle object evictor (if any).  If an object     * fails to validate, it will be dropped from the pool.     *     * @see #setTestWhileIdle     * @see #getTestWhileIdle     * @see #getTimeBetweenEvictionRunsMillis     * @see #setTimeBetweenEvictionRunsMillis     */    private boolean _testWhileIdle = DEFAULT_TEST_WHILE_IDLE;    /**     * The number of milliseconds to sleep between runs of the     * idle object evictor thread.     * When non-positive, no idle object evictor thread will be     * run.     *     * @see #setTimeBetweenEvictionRunsMillis     * @see #getTimeBetweenEvictionRunsMillis     */    private long _timeBetweenEvictionRunsMillis = DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS;    /**     * The max number of objects to examine during each run of the     * idle object evictor thread (if any).     * <p>     * When a negative value is supplied, <tt>ceil({@link #getNumIdle})/abs({@link #getNumTestsPerEvictionRun})</tt>     * tests will be run.  I.e., when the value is <i>-n</i>, roughly one <i>n</i>th of the     * idle objects will be tested per run.     *     * @see #setNumTestsPerEvictionRun     * @see #getNumTestsPerEvictionRun     * @see #getTimeBetweenEvictionRunsMillis     * @see #setTimeBetweenEvictionRunsMillis     */    private int _numTestsPerEvictionRun =  DEFAULT_NUM_TESTS_PER_EVICTION_RUN;    /**     * The minimum amount of time an object may sit idle in the pool     * before it is eligable for eviction by the idle object evictor     * (if any).     * When non-positive, no objects will be evicted from the pool     * due to idle time alone.     *     * @see #setMinEvictableIdleTimeMillis     * @see #getMinEvictableIdleTimeMillis     * @see #getTimeBetweenEvictionRunsMillis     * @see #setTimeBetweenEvictionRunsMillis     */    private long _minEvictableIdleTimeMillis = DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS;    /**     * The minimum amount of time an object may sit idle in the pool     * before it is eligable for eviction by the idle object evictor     * (if any), with the extra condition that at least     * "minIdle" amount of object remain in the pool.     * When non-positive, no objects will be evicted from the pool     * due to idle time alone.     *     * @see #setSoftMinEvictableIdleTimeMillis     * @see #getSoftMinEvictableIdleTimeMillis     */    private long _softMinEvictableIdleTimeMillis = DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS;    /** My pool. */    protected LinkedList _pool = null;    /** My {@link PoolableObjectFactory}. */    protected PoolableObjectFactory _factory = null;    /**     * The number of objects {@link #borrowObject} borrowed     * from the pool, but not yet returned.     */    protected int _numActive = 0;    /**     * My idle object eviction {@link TimerTask}, if any.     */    private Evictor _evictor = null;    /**     * Position in the _pool where the _evictor last stopped.     */    private int evictLastIndex = -1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产suv精品一区二区6| 精品精品国产高清一毛片一天堂| 欧美日韩你懂的| 26uuu国产日韩综合| 亚洲一区二区三区影院| 国产成人av一区二区三区在线 | 久久理论电影网| 亚洲午夜国产一区99re久久| 成人福利视频在线看| 欧美一级生活片| 一区二区三区中文字幕精品精品| 成人综合婷婷国产精品久久蜜臀| 69堂成人精品免费视频| 一区二区三区 在线观看视频| 国产成人免费av在线| 欧美刺激午夜性久久久久久久| 一区二区三区日韩精品视频| 成人免费高清视频在线观看| 久久老女人爱爱| 国产自产高清不卡| 日韩午夜av电影| 日韩电影在线免费观看| 欧美日韩一级片网站| 亚洲精品免费在线观看| 99久久精品免费精品国产| 久久久国产午夜精品| 韩国女主播一区二区三区| 日韩午夜在线观看视频| 日韩福利视频网| 欧美精品色一区二区三区| 亚洲精品视频在线观看免费| 色综合久久久久综合99| 亚洲人快播电影网| 色综合中文综合网| 国产精品性做久久久久久| 欧美福利视频导航| 日本va欧美va瓶| 日韩精品影音先锋| 丁香啪啪综合成人亚洲小说 | 91精品国产综合久久福利| 亚洲成人精品在线观看| 欧美四级电影在线观看| 亚洲最大色网站| 欧美日韩国产小视频在线观看| 婷婷成人激情在线网| 欧美大片免费久久精品三p| 久草热8精品视频在线观看| 国产日韩成人精品| 风流少妇一区二区| 亚洲精品国产一区二区三区四区在线 | 色嗨嗨av一区二区三区| 亚洲一区二区三区四区在线观看| 6080午夜不卡| 国产高清久久久久| 亚洲三级视频在线观看| 欧美精品乱码久久久久久按摩 | 久久伊人中文字幕| 国产成人福利片| 一区二区三区毛片| 欧美一级二级三级蜜桃| 成人精品鲁一区一区二区| 亚洲一区二区三区四区的| 欧美一区二区日韩| 国产成人午夜精品影院观看视频| 亚洲精品一二三| 精品入口麻豆88视频| 97精品国产露脸对白| 亚洲va欧美va人人爽午夜| 精品国内片67194| 成人av在线观| 日本欧美大码aⅴ在线播放| 中文字幕不卡在线播放| 欧美最猛性xxxxx直播| 国产麻豆视频一区二区| 亚洲综合一二三区| 久久久久久久性| 欧美美女一区二区| 成人美女视频在线观看| 奇米综合一区二区三区精品视频| 日韩美女视频一区二区| 久久毛片高清国产| 69堂精品视频| 欧美自拍偷拍午夜视频| 国产sm精品调教视频网站| 青青草97国产精品免费观看 | 久久理论电影网| 欧美人体做爰大胆视频| 99视频有精品| 国产福利不卡视频| 日本欧美一区二区三区| 自拍偷拍亚洲欧美日韩| 久久综合资源网| 欧美理论片在线| 91蜜桃视频在线| 成人性生交大片免费 | 午夜视频在线观看一区二区三区| 日本一区二区电影| 精品免费国产二区三区| 欧美日韩在线播放| 91蜜桃视频在线| www.亚洲精品| 波多野结衣欧美| 国产a精品视频| 国产精品亚洲一区二区三区在线| 免费一区二区视频| 午夜不卡av免费| 亚洲福利电影网| 亚洲午夜一区二区| 夜夜精品视频一区二区| 综合色天天鬼久久鬼色| 国产精品丝袜黑色高跟| 欧美国产精品中文字幕| 欧美—级在线免费片| 国产目拍亚洲精品99久久精品| 久久综合九色综合欧美98 | 亚洲柠檬福利资源导航| 日韩美女精品在线| 亚洲蜜臀av乱码久久精品| 亚洲男人都懂的| 亚洲国产精品一区二区久久恐怖片| 亚洲国产日韩av| 日韩电影免费在线观看网站| 视频一区二区三区在线| 日韩av网站在线观看| 麻豆精品在线播放| 91色视频在线| 欧美天堂一区二区三区| 日韩一卡二卡三卡| 亚洲精品在线观| 国产精品丝袜一区| 亚洲已满18点击进入久久| 午夜精品影院在线观看| 精久久久久久久久久久| 成人爽a毛片一区二区免费| 色999日韩国产欧美一区二区| 欧美日韩精品免费| 精品国产乱码久久久久久闺蜜 | 高清久久久久久| 一本大道久久a久久精二百| 欧美日韩国产天堂| 日韩免费观看高清完整版| 国产欧美精品一区二区色综合朱莉| 国产精品久久久久三级| 五月综合激情网| 国产白丝网站精品污在线入口| 91亚洲男人天堂| 欧美一区2区视频在线观看| 久久久久国产精品人| 亚洲一区二区在线观看视频| 三级一区在线视频先锋 | 久久国产免费看| 99re在线视频这里只有精品| 欧美老年两性高潮| 国产精品色噜噜| 日韩va亚洲va欧美va久久| 成年人网站91| 91精品国产乱| 国产精品久久久久天堂| 日韩电影在线免费| 91亚洲国产成人精品一区二区三| 这里只有精品免费| 综合中文字幕亚洲| 国产精品一卡二卡在线观看| 欧美视频在线一区二区三区| 国产欧美日本一区二区三区| 精品久久人人做人人爽| 欧美色视频在线观看| 欧美成人激情免费网| 亚洲一区二区三区视频在线播放| 欧美在线观看一二区| 精品国产一区二区三区久久久蜜月| 亚洲欧美色一区| 国产成a人亚洲| 日韩丝袜美女视频| 亚洲成人精品一区| 99天天综合性| 国产精品伦一区| 久久99国产精品久久99| 91.xcao| 夜夜揉揉日日人人青青一国产精品| 国产成人综合自拍| 精品美女一区二区| 青青青伊人色综合久久| 欧美午夜精品一区| 亚洲精选视频免费看| 成人av电影在线观看| 国产视频一区在线播放| 国内精品视频一区二区三区八戒| 欧美巨大另类极品videosbest| 亚洲资源中文字幕| 91九色最新地址| 亚洲综合网站在线观看| 色婷婷精品大视频在线蜜桃视频| 国产精品视频一二| 成人福利电影精品一区二区在线观看| 日韩三级视频在线看| 日韩高清国产一区在线| 91麻豆精品国产自产在线观看一区 | 亚洲激情在线播放| 91免费版在线|