我在多线程环境中使用 httpClient (4.1.x)。我正在使用 ThreadSafeClientConnManager 类来创建持久连接的连接池,当我的 Web 服务器接收到请求时,不同的线程会调用这些连接池。
HttpClient 有一个 MAX_CONNECTIONS 参数和一个 MAX_CONNECTIONS_PER_ROUTE 参数,可以根据需要服务的并发请求数进行配置。
我的问题是关于达到 MAX_CONNECTIONS 限制时 ThreadSafeClientConnManager 的行为。支持 MAX_CONNECTIONS 已打开且都处于忙碌状态,即被其他线程使用。现在,一个新线程向连接池发出一个新请求以进行连接。现在,它(ConnectionPool)是否忽略此请求,或者调用是否阻塞调用线程并等待连接管理器能够找到空闲连接?