Junior — Middle
Cum se realizează transmiterea datelor printr-un canal de comunicare fără buffer?
sobes.tech AI
Răspuns de la AI
Transferul de date printr-un canal fără buffer în Go are loc sincron: expeditorul se blochează până când receptorul citește datele, și invers. Acest lucru asigură o sincronizare directă între goroutine-uri.
Exemplu:
ch := make(chan int) // canal fără buffer
// Expeditor
go func() {
ch <- 42 // se blochează până când receptorul citește
}()
// Receptor
val := <-ch // se blochează până apare o valoare
fmt.Println(val) // va afișa 42
Astfel, datele sunt transmise direct, fără stocare intermediară, garantând sincronizarea între expeditor și receptor.