Cara menggunakan sync.Pool untuk menggunakan semula objek dalam Goroutine: Import pakej "sync". Buat pembolehubah jenis penyegerakan.Kolam. Dapatkan objek menggunakan kaedah Get(). Apabila anda selesai menggunakan objek, masukkan semula ke dalam kolam objek menggunakan kaedah Put().
sync.Pool ialah alat serentak yang berkuasa dalam pustaka standard Go, yang membolehkan penggunaan semula objek yang cekap dalam Goroutine. Melakukannya meningkatkan prestasi aplikasi dengan mengurangkan peruntukan dan overhed kutipan sampah.
Menggunakan sync.Pool
Untuk menggunakan sync.Pool, ikut langkah berikut:
Get()
untuk mendapatkan objek. Jika tiada objek tersedia dalam kolam objek, ia akan mencipta objek baharu. Get()
方法获取一个对象。如果对象池中没有可用的对象,它将创建一个新的对象。Put()
方法。示例代码
以下是一个使用 sync.Pool 重用字符串切片的示例:
package main import ( "fmt" "sync" ) var pool = sync.Pool{ New: func() interface{} { return make([]string, 0, 10) }, } func main() { s := pool.Get().([]string) s = append(s, "Hello") s = append(s, "World") fmt.Println(s) // ["Hello", "World"] pool.Put(s) }
在上面的示例中,我们创建了一个 sync.Pool,并指定了 New
Put()
. . . Fungsi ini digunakan untuk mencipta objek baharu, dalam kes ini hirisan rentetan. Kemudian kami mendapat hirisan rentetan daripada kolam objek, menambah elemen padanya dan mencetaknya. Akhir sekali, kami meletakkan hirisan rentetan semula ke dalam kolam objek supaya Goroutine lain boleh menggunakannya semula. Menggunakan penyegerakan.Kolam boleh meningkatkan prestasi kod anda dengan ketara kerana ia mengurangkan peruntukan objek dan masa pengumpulan sampah. Ia berguna untuk menguruskan sejumlah besar objek jangka pendek dalam aplikasi yang sangat serentak. 🎜Atas ialah kandungan terperinci Bagaimana untuk menggunakan semula objek dalam Goroutine menggunakan sync.Pool daripada pustaka standard Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!