以下是一个简单的 Go 高效字节池代码案例:
package main
import (
"fmt"
"sync"
)
var pool = sync.Pool{
New: func() interface{} {
return make([]byte, 1024)
},
}
func main() {
data := pool.Get().([]byte)
defer pool.Put(data)
data[0] = 1
data[1] = 2
fmt.Println(data)
}
在上面的代码中,我们定义了一个名为 pool 的 sync.Pool 对象,其中 New 字段是在池为空时调用以创建一个新值的函数。在这种情况下,我们创建了一个 1024 字节的字节数组。
在 main 函数中,我们通过调用 Get 方法从池中获取一个新的字节数组。我们使用 defer 语句在函数退出时将它放回池中。我们对该数组进行了一些修改,然后将其打印出来。