Sobes.tech
Junior — Middle

Как се осъществява предаването на данни чрез небуфериран канал за комуникация?

sobes.tech AI

Отговор от AI

Преносът на данни чрез небуфериран канал в Go се случва синхронно: изпращачът се блокира, докато получателят не прочете данните, и обратно. Това осигурява директна синхронизация между горутините.

Пример:

ch := make(chan int) // небуфериран канал

// Изпращач
go func() {
    ch <- 42 // блокира се, докато получателят не прочете
}()

// Получател
val := <-ch // блокира се, докато не се появи стойност
fmt.Println(val) // ще изведе 42

По този начин данните се предават директно, без междинно съхранение, което гарантира синхронизация между изпращача и получателя.