Class ConnectionPool


  • public final class ConnectionPool
    extends Object
    Manages reuse of HTTP and SPDY connections for reduced network latency. HTTP requests that share the same Address may share a Connection. This class implements the policy of which connections to keep open for future use.

    The system-wide default uses system properties for tuning parameters:

    • http.keepAlive true if HTTP and SPDY connections should be pooled at all. Default is true.
    • http.maxConnections maximum number of idle connections to each to keep in the pool. Default is 5.
    • http.keepAliveDuration Time in milliseconds to keep the connection alive in the pool before closing it. Default is 5 minutes. This property isn't used by HttpURLConnection.

    The default instance doesn't adjust its configuration as system properties are changed. This assumes that the applications that set these parameters do so before making HTTP connections, and that this class is initialized lazily.

    • Constructor Detail

      • ConnectionPool

        public ConnectionPool​(int maxIdleConnections,
                              long keepAliveDurationMs)
    • Method Detail

      • getConnectionCount

        public int getConnectionCount()
        Returns total number of connections in the pool.
      • getMultiplexedConnectionCount

        public int getMultiplexedConnectionCount()
        Returns total number of multiplexed connections in the pool.
      • getHttpConnectionCount

        public int getHttpConnectionCount()
        Returns total number of http connections in the pool.
      • get

        public Connection get​(Address address)
        Returns a recycled connection to address, or null if no such connection exists.
      • evictAll

        public void evictAll()
        Close and remove all connections in the pool.