code: func (c *channelPool) Put(conn interface{}) error {
  	if conn == nil {
  		return errors.New("connection is nil. rejecting")
  	}
  
  	c.mu.Lock()
  
  	if c.conns == nil {
  		c.mu.Unlock()
  		return c.Close(conn)
  	}
  
  	select {
  	case c.conns <- &idleConn{conn: conn, t: time.Now()}:
  		c.mu.Unlock()
  		return nil
  	default:
  		c.mu.Unlock()
  		//连接池已满，直接关闭该连接
  		return c.Close(conn)
  	}
  }
docs: // Put 将连接放回pool中