今天加班比较晚,打断点研究了下昨天的疑问点

1.淘汰连接线程不光会去淘汰线程,连接池的连接数量+活跃数量<小于最小闲置数量,会去创建连接满足最小闲置数量,还会去提交创建连接定时任务;目前不是很理解这种设计,是为了提高性能还是其他目的

        if (needFill) {
            lock.lock();
            try {
                int fillCount = minIdle - (activeCount + poolingCount + createTaskCount);
                for (int i = 0; i < fillCount; ++i) {
                    emptySignal();
                }
            } finally {
                lock.unlock();
            }
        } else if (onFatalError || fatalErrorIncrement > 0) {
            lock.lock();
            try {
                emptySignal();
            } finally {
                lock.unlock();
            }
        }

2.池子里有4个,最小闲置1个,如果未到配置的淘汰时间,不会淘汰,如果配淘汰时间,连接池会优先不活跃时间大于淘汰时间的连接

posted on 2022-05-13 00:37  柳无情  阅读(152)  评论(0编辑  收藏  举报