本文摘自网络,作者,侵删。
安装
go get github.com/go-basic/pool
实现接口
type DemoCloser struct {
Conn net.Conn
activeAt time.Time
}
func (p *DemoCloser) Close() error {
return p.Conn.Close()
}
func (p *DemoCloser) GetActiveTime() time.Time {
return p.activeAt
}
使用
p, err := pool.NewGenericPool(2, 5, 30*time.Second, func() (poolable pool.Poolable, e error) {
conn, err := net.Dial("tcp", addr)
if err != nil {
return nil, err
}
return &DemoCloser{Conn: conn, activeAt: time.Now()}, nil
})
if err != nil {
fmt.Println("err=", err)
}
//从连接池中取得一个连接
v, err := p.Get()
//todo
//conn=v.(net.Conn)
//将连接放回连接池中
p.Put(v)
//释放连接池中的所有连接
//p.Release()
//查看当前连接中的数量
current := p.Len()
fmt.Println("len=", current)
更多见example
https://github.com/go-basic/pool/blob/master/example/main.go
本文来自:简书
感谢作者:如水网
查看原文:golang 通用链接池
相关阅读 >>
修改文件夹下面所有.jpg文件名demo ->欢迎加入微信交流群一起交流学习Go
Go 获取 html 标签中的文本_关于html中progress标签的定义及用法汇总!
更多相关阅读请进入《Go》频道 >>

Go语言101
一个与时俱进的Go编程知识库。