分享
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
## 安装
```
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
有疑问加站长微信联系(非本文作者))
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信962 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传