code: @Override
  	public void run() {
  		ThriftConnectionHandle<T> connection;
  		long tmp;
  		long nextCheckInMs = this.maxConnectionAge;
  
  		int partitionSize = this.thriftConnectionPartition.getAvailableConnections();
  		long currentTime = System.currentTimeMillis();
  		for (int i = 0; i < partitionSize; i++) {
  			try {
  				connection = this.thriftConnectionPartition.poolFreeConnection();
  
  				if (connection != null) {
  					connection.setOriginatingPartition(this.thriftConnectionPartition);
  
  					tmp = this.maxConnectionAge - (currentTime - connection.getConnectionCreationTimeInMs());
  
  					if (tmp < nextCheckInMs) {
  						nextCheckInMs = tmp;
  					}
  
  					// 判断连接是否过期
  					if (connection.isExpired(currentTime)) {
  						// 关闭连接
  						closeConnection(connection);
  						continue;
  					}
  
  					if (lifoMode == ServiceOrder.LIFO) {
  						if (!(connection.getConnectionPartition().getFreeConnections().offer(connection))) {
  							connection.internalClose();
  						}
  					} else {
  						this.thriftConnectionPool.putConnectionBackInPartition(connection);
  					}
  					// 避免cpu使用率过高 进行一段时间休眠
  					Thread.sleep(20L);
  				}
  			} catch (Throwable e) {
  				logger.error("Connection max age thread exception.", e);
  			}
  		}
  
  	}
docs: /*
  @see java.lang.Runnable#run()