0

我在多线程环境中使用 httpClient (4.1.x)。我正在使用 ThreadSafeClientConnManager 类来创建持久连接的连接池,当我的 Web 服务器接收到请求时,不同的线程会调用这些连接池。

HttpClient 有一个 MAX_CONNECTIONS 参数和一个 MAX_CONNECTIONS_PER_ROUTE 参数,可以根据需要服务的并发请求数进行配置。

我的问题是关于达到 MAX_CONNECTIONS 限制时 ThreadSafeClientConnManager 的行为。支持 MAX_CONNECTIONS 已打开且都处于忙碌状态,即被其他线程使用。现在,一个新线程向连接池发出一个新请求以进行连接。现在,它(ConnectionPool)是否忽略此请求,或者调用是否阻塞调用线程并等待连接管理器能够找到空闲连接?

4

1 回答 1

0

它会一直阻塞,直到达到 timeout* 或释放连接。

*(使用您的连接超时值作为阻塞获取超时)

于 2011-07-13T08:30:38.800 回答