GoCommosPool是用Go实现的对象池,直接翻译自Java版的ApacheCommosPool.
示例代码:
//use create fucpool := NewObjectPoolWithDefaultCofig(NewPooledObjectFactorySimple( fuc() (iterface{}, error) { retur &MyPoolObject{}, il }))obj, _ := pool.BorrowObject()pool.ReturObject(obj)//use custom Object factorytype MyObjectFactory struct {}fuc (this *MyObjectFactory) MakeObject() (*PooledObject, error) { retur NewPooledObject(&MyPoolObject{}), il}fuc (this *MyObjectFactory) DestroyObject(object *PooledObject) error { //do destroy retur il}fuc (this *MyObjectFactory) ValidateObject(object *PooledObject) bool { //do validate retur true}fuc (this *MyObjectFactory) ActivateObject(object *PooledObject) error { //do activate retur il}fuc (this *MyObjectFactory) PassivateObject(object *PooledObject) error { //do passivate retur il}pool := NewObjectPoolWithDefaultCofig(ew(MyObjectFactory))obj, _ := pool.BorrowObject()pool.ReturObject(obj)
评论