[背景]
应用中线程数量 一直在增加,dump线程日志发现大量IdleConnectionEvictor日志。
源码分析:
//evictExpiredConnections 这个配置作用:
//设置一个定时线程,定时清理闲置连接,可以将这个定时时间设置为 keep alive timeout 时间的一半以保证超时前回收
//所以在build httpclinet 的时候可以设置evictExpiredConnections()
if (evictExpiredConnections || evictIdleConnections) {
//这里要看IdleConnectionEvictor源码,里面会创建一个线程
final IdleConnectionEvictor connectionEvictor = new IdleConnectionEvictor(cm,
maxIdleTime > 0 ? maxIdleTime : 10, maxIdleTimeUnit != null ? maxIdleTimeUnit : TimeUnit.SECONDS,
maxIdleTime, maxIdleTimeUnit);
closeablesCopy.add(new Closeable() {
@Override
public void close() throws IOException {