Go Commons Pool -


Apache
跨平台
Google Go

软件简介

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)