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