Каким образом можно управлять размером буфера в канале?

В Go размер буфера канала задаётся при его создании с помощью функции make. Если указать второй параметр — это будет размер буфера, то есть количество элементов, которые канал может хранить без блокировки отправителя.

Короткий ответ

Что ответить на собеседовании

В Go размер буфера канала задаётся при его создании с помощью функции make. Если указать второй параметр — это будет размер буфера, то есть количество элементов, которые канал может хранить без блокировки отправителя.

Подробный разбор

Ответ с пояснениями

В Go размер буфера канала задаётся при его создании с помощью функции make. Если указать второй параметр — это будет размер буфера, то есть количество элементов, которые канал может хранить без блокировки отправителя.

Пример создания буферизированного канала с размером буфера 5:

ch := make(chan int, 5)

Если буфер заполнен, отправка в канал блокируется до тех пор, пока кто-то не прочитает из канала. Если буфер равен 0 (или параметр не указан), канал является небуферизированным и отправка блокируется до получения значения.

Таким образом, управление размером буфера сводится к указанию второго параметра при создании канала.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее