Maison >développement back-end >Golang >Comment implémenter la file d'attente de messages dans Goroutine ?
Comment implémenter la file d'attente des messages dans Goroutine ? Utilisez la fonction make pour créer un canal sans tampon. Utilisez l'opérateur acae4d8d2f4337b40f9de42bbe579681
Comment implémenter la file d'attente des messages dans Goroutine ?
Introduction
Les Goroutines dans Go sont des primitives de concurrence légères qui peuvent être utilisées pour créer du code d'exécution parallèle. Une file d'attente de messages est un mécanisme de communication qui permet aux Goroutines d'envoyer et de recevoir des messages de manière asynchrone. Ce didacticiel présentera comment utiliser les canaux pour implémenter des files d'attente de messages dans Go et fournira un cas pratique.
Implémentation de la file d'attente des messages
Channel in Go est un canal de communication bidirectionnel qui peut être utilisé pour transférer des valeurs entre Goroutines. Pour créer une chaîne, utilisez la fonction make
. Par exemple : make
函数。例如:
ch := make(chan int)
此代码创建一个无缓冲 channel,这意味着它一次只能容纳一个值。
发送消息
要发送消息,请使用 channel 的 e82c93edb03ae9fc363714375d82ea49
操作符。例如:
msg := <-ch
此代码将从 channel 接收一个值并将其存储在 msg
package main import "time" func main() { ch := make(chan int) go func() { for i := 0; i < 10; i++ { ch <- i time.Sleep(time.Second) } close(ch) }() }Ce code crée un canal sans tampon, ce qui signifie qu'il ne peut contenir qu'une seule valeur à la fois.
Envoyer un message
Pour envoyer un message, utilisez l'opérateur5e316382eaa709726c113a619e778256
de la chaîne. Par exemple : rrreee
Ce code recevra une valeur du canal et la stockera dans la variablemsg
. 🎜🎜🎜Cas pratique🎜🎜🎜Créons une application producteur-consommateur simple, où le producteur Goroutine enverra des messages, et le consommateur Goroutine recevra et traitera ces messages. 🎜🎜🎜Code producteur🎜🎜rrreee🎜🎜Code consommateur🎜🎜rrreee🎜Dans cet exemple, le producteur envoie un message à la chaîne chaque seconde, et le consommateur reçoit et traite ces messages de la chaîne à la même fréquence. 🎜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!