Comment utiliser sync.Pool pour réutiliser des objets dans Goroutine : Importez le package "sync". Créez une variable de type sync.Pool. Obtenez un objet à l'aide de la méthode Get(). Lorsque vous avez fini d'utiliser l'objet, remettez-le dans le pool d'objets à l'aide de la méthode Put().
sync.Pool est un puissant outil de concurrence dans la bibliothèque standard Go, qui permet une réutilisation efficace des objets dans Goroutine. Cela améliore les performances des applications en réduisant les frais d’allocation et de garbage collection.
Utilisation de sync.Pool
Pour utiliser sync.Pool, suivez ces étapes :
Get()
pour obtenir un objet. S'il n'y a aucun objet disponible dans le pool d'objets, un nouvel objet sera créé. 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()
.
Exemple de code
🎜🎜Voici un exemple de réutilisation de tranches de chaîne à l'aide de sync.Pool : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons créé un sync.Pool et spécifié la fonctionNew
. Cette fonction crée un nouvel objet, dans ce cas une tranche de chaîne. 🎜🎜Ensuite, nous obtenons une tranche de chaîne du pool d'objets, y ajoutons des éléments et l'imprimons. Enfin, nous remettons la tranche de chaîne dans le pool d'objets afin que d'autres Goroutines puissent la réutiliser. 🎜🎜L'utilisation de sync.Pool peut améliorer considérablement les performances de votre code car elle réduit l'allocation d'objets et le temps de récupération de place. Il est utile pour gérer un grand nombre d’objets de courte durée dans des applications hautement concurrentes. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!