Vous pouvez implémenter la mémoire partagée Goroutine via un canal : créez un canal pour spécifier le type d'élément. Démarrez une Goroutine pour écrire des données sur le canal. Utilisez une boucle de plage dans le Goroutine principal pour lire les données du canal. La fin de l'écriture est indiquée par la fermeture du canal.
Comment créer une mémoire partagée Goroutine en Go ?
Dans Go, la mémoire partagée est implémentée via des canaux. Un canal est essentiellement une file d'attente premier entré, premier sorti (FIFO) pour l'envoi et la réception de valeurs entre Goroutines.
Cas pratique
Créer une mémoire partagée Goroutine est très simple. Voici l'exemple de code :
package main import ( "fmt" "sync" ) func main() { // 创建一个 channel ch := make(chan int) // 创建 Goroutine 并启动,它将向 channel 写入数据 var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() for i := 0; i < 10; i++ { ch <- i } // 关闭 channel 表示完成 close(ch) }() // 从 channel 中读取数据 for v := range ch { fmt.Println(v) } wg.Wait() }
Explication
int
). int
)。go
语句启动一个新的 Goroutine,并将一个函数作为参数传递。close(ch)
go
démarre une nouvelle Goroutine et passe une fonction en paramètre. Lorsque la Goroutine est terminée, vous pouvez utiliser close(ch)
pour fermer la chaîne.
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!