Sobes.tech
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.