Sobes.tech
Назад к вопросам
Senior
2

Какой размер буфера у небуферизированного канала?

Компании, где спрашивали
SberAuto

Ответ от нейросети

sobes.tech AI

У небуферизированного канала в Go размер буфера равен нулю. Это означает, что отправка в такой канал блокируется до тех пор, пока другой горутина не прочитает значение из канала, и наоборот — чтение блокируется, пока не появится значение для чтения.

Пример:

ch := make(chan int) // небуферизированный канал

// Отправка и получение должны происходить одновременно, иначе будет блокировка
go func() {
    ch <- 42 // блокируется, пока кто-то не прочитает
}()

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