- 授权协议: Apache
- 开发语言: Google Go
- 操作系统: 跨平台
- 软件首页: https://github.com/jolestar/go-commons-pool
- 软件文档: http://jolestar.com/go-commons-pool-and-go-concurrent/
软件介绍
Go Commons Pool 是用 Go 实现的对象池,直接翻译自 Java 版的 Apache Commons Pool.
示例代码:
//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)
