代码拉取完成,页面将自动刷新
package cache
import "sync"
// Pool 二次封装的泛型sync.Pool
type Pool[E any] struct {
once sync.Once // 初始化sync.Pool的New接口
pool sync.Pool // sync.Pool
zero E // 零值
}
// 初始化sync.Pool.New
func (this *Pool[E]) init() {
this.pool = sync.Pool{New: func() any {
var e E
return &e
}}
}
// Acquire 申请内存
func (this *Pool[E]) Acquire() *E {
this.once.Do(this.init)
obj := this.pool.Get().(*E)
*obj = this.zero
return obj
}
// Release 释放内存
func (this *Pool[E]) Release(obj *E) {
this.once.Do(this.init)
if obj == nil {
return
}
this.pool.Put(obj)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。