Go 语言实现的网络连接池:Pool

jopen 10年前

Pool是一个线程安全,针对net.Conn接口的连接池。它可用于管理和复用网络连接。
示例:

// create a factory() to be used with channel based pool  factory    := func() (net.Conn, error) { return net.Dial("tcp", "127.0.0.1:4000") }    // create a new channel based pool with an initial capacity of 5 and maximum  // capacity of 30. The factory will create 5 initial connections and put it  // into the pool.  p, err := pool.NewChannelPool(5, 30, factory)    // now you can get a connection from the pool, if there is no connection  // available it will create a new one via the factory function.  conn, err := p.Get()    // do something with conn and put it back to the pool by closing the connection  // (this doesn't close the underlying connection instead it's putting it back  // to the pool).  conn.Close()    // close pool any time you want, this closes all the connections inside a pool  p.Close()    // currently available connections in the pool  current := p.Len()

项目主页:http://www.open-open.com/lib/view/home/1418090890605