Расскажи про буферизированные и небуферизированные каналы. Когда какие используем? Как они блокируются, когда уходят в дедлок?

Небуферизованный канал синхронизирует отправителя и получателя напрямую; буферизованный допускает очередь до capacity. Запись в полный и чтение из пустого канала ждут.

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

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

Небуферизованный канал синхронизирует отправителя и получателя напрямую; буферизованный допускает очередь до capacity. Запись в полный и чтение из пустого канала ждут.

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

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

Небуферизованный канал синхронизирует отправителя и получателя напрямую; буферизованный допускает очередь до capacity. Запись в полный и чтение из пустого канала ждут.

Буфер не устраняет ошибки жизненного цикла: если никто больше не читает или не пишет, ожидание может стать бесконечным. Deadlock возникает при взаимной или безвыходной зависимости, а не при любой краткой блокировке. Планируйте закрытие, отмену и ожидание отправителей. Размер буфера выбирают по допустимой очереди, а не как способ скрыть зависание.

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

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

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

Подробнее