Junior — Middle
Wie erfolgt die Datenübertragung über einen unpufferisierten Kommunikationskanal?
sobes.tech KI
Antwort von AI
Die Datenübertragung über einen nicht gepufferten Kanal in Go erfolgt synchron: Der Sender wird blockiert, bis der Empfänger die Daten liest, und umgekehrt. Dies gewährleistet eine direkte Synchronisation zwischen den Goroutines.
Beispiel:
ch := make(chan int) // nicht gepufferter Kanal
// Sender
go func() {
ch <- 42 // blockiert, bis der Empfänger liest
}()
// Empfänger
val := <-ch // blockiert, bis ein Wert erscheint
fmt.Println(val) // gibt 42 aus
Auf diese Weise werden Daten direkt übertragen, ohne Zwischenspeicherung, was die Synchronisation zwischen Sender und Empfänger garantiert.