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