//释放一个具体对象,如果池中有空间,则回收,如果空闲的超过一定数量,则不回收,直接删除 func (p *Pool) Free(e datatype.Entityer) { if l, exist := p.pool[e.ObjTypeName()]; exist { if l.Len() <= MAX_POOL_FREE { e.Reset() l.PushBack(e) } } else { l := list.New() e.Reset() l.PushBack(e) p.pool[e.ObjTypeName()] = l } }