Go 高效字节池 的代码案例

3 min read

以下是一个简单的 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 语句在函数退出时将它放回池中。我们对该数组进行了一些修改,然后将其打印出来。