Junior — Middle
Как се осъществява предаването на данни чрез небуфериран канал за комуникация?
sobes.tech AI
Отговор от AI
Преносът на данни чрез небуфериран канал в Go се случва синхронно: изпращачът се блокира, докато получателят не прочете данните, и обратно. Това осигурява директна синхронизация между горутините.
Пример:
ch := make(chan int) // небуфериран канал
// Изпращач
go func() {
ch <- 42 // блокира се, докато получателят не прочете
}()
// Получател
val := <-ch // блокира се, докато не се появи стойност
fmt.Println(val) // ще изведе 42
По този начин данните се предават директно, без междинно съхранение, което гарантира синхронизация между изпращача и получателя.