这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
Go Commons Pool 是用 Go 实现的对象池,直接翻译自 Java 版的 [Apache Commons Pool](http://www.oschina.net/p/commons-pool).
示例代码:
<pre class="brush:cpp ;toolbar: true; auto-links: false;">//use create func
pool := NewObjectPoolWithDefaultConfig(NewPooledObjectFactorySimple(
func() (interface{}, error) {
return &MyPoolObject{}, nil
}))
obj, _ := pool.BorrowObject()
pool.ReturnObject(obj)
//use custom Object factory
type MyObjectFactory struct {
}
func (this *MyObjectFactory) MakeObject() (*PooledObject, error) {
return NewPooledObject(&MyPoolObject{}), nil
}
func (this *MyObjectFactory) DestroyObject(object *PooledObject) error {
//do destroy
return nil
}
func (this *MyObjectFactory) ValidateObject(object *PooledObject) bool {
//do validate
return true
}
func (this *MyObjectFactory) ActivateObject(object *PooledObject) error {
//do activate
return nil
}
func (this *MyObjectFactory) PassivateObject(object *PooledObject) error {
//do passivate
return nil
}
pool := NewObjectPoolWithDefaultConfig(new(MyObjectFactory))
obj, _ := pool.BorrowObject()
pool.ReturnObject(obj)</pre>
3162 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传