我在java应用程序中使用ThreadSafeClientConnManager
进行多线程处理。我的ThreadSafeClientConnManager
对象是静态的,因此它在应用程序运行之前一直存在。
如果我从不致电closeExpiredConnections()
或closeIdleConnections()
会怎样?
从长远来看,它会使我的应用程序崩溃吗?
答案 0 :(得分:0)
以下假设您使用httpcmponents-client 4.1.2,这是当前的GA。
从代码和javadocs来看,没有什么不好的事情会发生。 ThreadSafeClientConnManager有合理的限制。如果您没有向上更改限制,最终池将填满,旧连接将被踢出。
一个缺点是你要保持空闲和过期的连接,它保存资源(文件句柄)和不需要的对象。但同样,如果你没有更改默认值,那么与可用内容相比,这些资源的数量很小:在Linux系统上总共有1000个文件句柄可用。
简而言之:这不会让应用程序崩溃。
PS这些库有可用的源代码,您应该亲自了解后果是什么。