Junior — Middle
Comment la transmission de données est-elle effectuée via un canal de communication sans tampon ?
sobes.tech IA
Réponse de l'IA
Le transfert de données via un canal non tamponné en Go se fait de manière synchrone : l'expéditeur est bloqué jusqu'à ce que le récepteur lise les données, et vice versa. Cela assure une synchronisation directe entre les goroutines.
Exemple :
ch := make(chan int) // canal non tamponné
// Expéditeur
go func() {
ch <- 42 // se bloque jusqu'à ce que le récepteur lise
}()
// Récepteur
val := <-ch // se bloque jusqu'à ce qu'une valeur apparaisse
fmt.Println(val) // affichera 42
Ainsi, les données sont transmises directement, sans stockage intermédiaire, garantissant la synchronisation entre l'expéditeur et le récepteur.