Каналы и select
Вопросов: 134 из 51 собеседований. Источник указан в заголовке группы.
Часто повторяются
Заголовок раздела «Часто повторяются»- Какие бывают виды каналов? — встречается 2×
- Какие бывают каналы? — встречается 2×
- Что будет если записать в закрытый канал? — встречается 2×
- Что будет если читать из закрытого канала? — встречается 3×
- Что будет если писать в закрытый канал? — встречается 2×
- Какие типы каналов бывают и как с ними работать? — встречается 2×
Все вопросы
Заголовок раздела «Все вопросы»AdCamp — 1 кв 2026
Заголовок раздела «AdCamp — 1 кв 2026»- Что такое канал? Какие виды каналов бывают?
- Что произойдет при отправке в закрытый канал?
- Что такое
selectв Go? Приведите пример использования.
Alta Personnel — 1 кв 2026
Заголовок раздела «Alta Personnel — 1 кв 2026»- Что произойдет при попытке чтения из закрытого канала? А при записи в закрытый канал?
amoCRM — 1 кв 2025
Заголовок раздела «amoCRM — 1 кв 2025»- Что такое каналы в Go и для чего они нужны?
- В чем разница между «буферизированными» и «небуферизированными» каналами?
- Можете описать внутреннюю структуру канала?
- Как работает оператор
select? - Что произойдет, если закрыть уже закрытый канал?
- Как можно избежать паники при закрытии канала?
Andersen - 1
Заголовок раздела «Andersen - 1»- For which types do you need to allocate memory? Ways to allocate memory a) Required for types: slice, map, array, chan b)
var i = 0c)makecreates an object with default values d)newcreates a pointer to an object - Data race & race condition a) What is a data race? i) Competition for data access b) Ways to prevent it i) Mutexes (
sync.Mutex,sync.RWMutex), channels c) What are mutexes? i)RWMutex- separating reads (RLock()) and writes (Lock()) d) Mutexes in the OS i) Protect memory regions from simultaneous access
Astral / Астрал
Заголовок раздела «Astral / Астрал»- Что будет, если писать в неинициализированный (nil) канал?
- Что будет, если читать в неинициализированный (nil) канал?
Avito / Авито (все этапы)
Заголовок раздела «Avito / Авито (все этапы)»- Виды каналов в Go?
Avito / Авито (скрининг) - 1 — 2 кв 2025
Заголовок раздела «Avito / Авито (скрининг) - 1 — 2 кв 2025»- Какие бывают виды каналов?
Burger King / Бургер Кинг
Заголовок раздела «Burger King / Бургер Кинг»- Отличие буферизированного канала (буфер=1) от небуферизированного.
- select: что делает, если каналы не готовы? Примеры использования.
Citydrive / Cитидрайв — 1 кв 2025
Заголовок раздела «Citydrive / Cитидрайв — 1 кв 2025»- Как решить на каналах?
- Каналы это, чем буферизированный от небуферизованного отличается?
Cloud.ru — 4 кв 2025
Заголовок раздела «Cloud.ru — 4 кв 2025»- Как можно наладить общение между рутинами?
- Какие виды каналов существуют в Go? Когда их используют и для чего?
- В каких случаях и для решения каких задач следует использовать буферизованные каналы, а в каких - небуферизованные?
- Что позволяет делать и какие особенности работы у оператора select?
Diasoft — 4 кв 2025
Заголовок раздела «Diasoft — 4 кв 2025»- Что делает оператор
breakв Go: прерывает только текущийswitch/selectили также цикл?
Domclick / Домклик — 1 кв 2025
Заголовок раздела «Domclick / Домклик — 1 кв 2025»- Как ты себе представляешь каналы. Если бы ты был разработчиком Go, как бы ты реализовал каналы?
Eapteka / Еаптека (Сбер Еаптека)
Заголовок раздела «Eapteka / Еаптека (Сбер Еаптека)»- что будет если писать в закрытый канал или читать из него, а канал nil?
EffectiveSoft — 1 кв 2026
Заголовок раздела «EffectiveSoft — 1 кв 2026»- Для чего нужны каналы в Go?
- Когда блокируется небуферизированный канал?
- Как можно одновременно работать с несколькими каналами?
- Что произойдет, если в операторе
selectуказаны операции чтения из двух каналов, но на момент выполнения ни в один из них не было отправлено данных? Как выйти из такогоselect? - При чтении из закрытого канала в Go возвращается нулевое значение типа. Как отличить ситуацию, когда вы прочитали реальное нулевое значение из открытого канала, от ситуации чтения из закрытого канала?
Employcity
Заголовок раздела «Employcity»- Если в канал передать структуру, то она скопируется?
Exness - 1
Заголовок раздела «Exness - 1»- What is the default value of a channel in Go?
- What will happen when you write to the nil channel?
Flant / Флант - 1 — 2 кв 2025
Заголовок раздела «Flant / Флант - 1 — 2 кв 2025»- Для чего используется select в Go? Приведите пример использования.
Group-IB - 1
Заголовок раздела «Group-IB - 1»- В каких случаях могут потребоваться буферизированные каналы?
Headframe — 1 кв 2026
Заголовок раздела «Headframe — 1 кв 2026»- Как работают каналы? В чем разница между буферизированным и небуферизированным?
- Чем
SELECT FOR UPDATEотличается от обычногоSELECT?
Holodilnik / Холодильник
Заголовок раздела «Holodilnik / Холодильник»- Расскажи про каналы
InDrive - 1
Заголовок раздела «InDrive - 1»- What kinds of channels are there?
Kaspersky / Касперский - 1
Заголовок раздела «Kaspersky / Касперский - 1»- Разница между буферизированным каналом размера один и небуферизированным (когда эффективнее)?
- Как устроены каналы?
Kvando Technologies
Заголовок раздела «Kvando Technologies»- Основные виды запросов к БД. (SELECT, INSERT, UPDATE, DELETE)
- Какие бывают каналы?
- Можно ли читать из закрытого канала? А записать?
Lamoda / Ламода - 1
Заголовок раздела «Lamoda / Ламода - 1»- Что такое каналы?
- Зачем нужны каналы?
- Какие бывают каналы?
- Аксиомы каналов?
- Select каналов?
Magnit / Магнит - 1 (Лояльность) — 1 кв 2025
Заголовок раздела «Magnit / Магнит - 1 (Лояльность) — 1 кв 2025»- Какие типы каналов знаешь?
- Рассказать про чтение/запись/закрытие закрытого канала/пустого канала/nil канала;
- Как в select работает чтение из закрытого канала?
Magnit / Магнит - 7 — 4 кв 2025
Заголовок раздела «Magnit / Магнит - 7 — 4 кв 2025»- Какие бывают каналы? В чем их отличие?
- Зачем придумали буферизированный и небуферизированный канал?
- По какому принципу работает буфер?
- Что будет, если попытаться отправить данные в закрытый канал?
- Что будет, если попытаться закрыть уже закрытый канал?
- Что произойдет, если использовать
for rangeдля чтения из канала, который никогда не будет закрыт?
MTS / МТС (Enablement platform)
Заголовок раздела «MTS / МТС (Enablement platform)»- Ответ дa или нет. Одно и тоже ли буферизированный канал с емкостью 1 и небуферизированный канал?
- Что произойдет, если попытаться записать данные в закрытый канал?
- Можно ли читать данные из закрытого канала?
- Каналы. Нужно написать функцию, которая принимает 2 канала и возвращает третий. Селект это? Какой кейс он выберет? Блокирующие/не блокирующие операции с каналом подробнее
- При чтении канала режим как особенности? Как узнать сколько в канале элементов если он буферизированный? У небуферизированного канала какая длина?
MTS / МТС (тестирование) — 1 кв 2025
Заголовок раздела «MTS / МТС (тестирование) — 1 кв 2025»- Чем основное отличие между каналами (channels) и массивами (arrays) в Go?
- Каналы могут хранить только целые числа, а массивы могут хранить любые типы данных;
- Каналы можно резайзить, а массивы имеют фиксированный размер;
- Каналы и массивы используются одинаково и не имеют различий;
- Массивы занимают больше памяти, чем каналы.
- Что такое буферизованные каналы в Go?
- Каналы, которые хранят данные в оперативной памяти;
- Каналы, которые автоматически удаляют старые данные при переполнении;
- Каналы, которые используют дополнительный кеш для хранения данных;
- Для чего используются каналы в Go?
Otello / Отелло
Заголовок раздела «Otello / Отелло»- о значениях и указателях, многопоточности, интерфейсах и каналах в Go;
Positive Technologies
Заголовок раздела «Positive Technologies»- Что будет, если писать или читать в/из закрытого канала?
- Что будет, если писать или читать в/из канала nil?
Rutube - 1
Заголовок раздела «Rutube - 1»- Что будет если записать в закрытый канал?
- Что будет если читать из закрытого канала?
- Что будет с циклом range когда канал буферизированный?
- Почему каналы быстрые и легковесные?
- Какой в pg синтаксис у select?
Samokat / Самокат (полный список)
Заголовок раздела «Samokat / Самокат (полный список)»- Какие существуют виды каналов?
- Из чего состоят каналы? (структура, назначение)
- Что будет если писать в закрытый канал?
Sber (Селекти) - 1 — 1 кв 2026
Заголовок раздела «Sber (Селекти) - 1 — 1 кв 2026»- Для чего предназначены каналы в Go и как они работают?
SberAuto / СберАвто
Заголовок раздела «SberAuto / СберАвто»- Какой размер буфера небуферизованного канала?
SberDevices / СберДевайсы
Заголовок раздела «SberDevices / СберДевайсы»- Чтение из закрытого канала, запись в закрытый канал, чтение/запись из канала nil.
SberTech SynAI — 1 кв 2026
Заголовок раздела «SberTech SynAI — 1 кв 2026»- Какие типы каналов бывают? Когда какой тип стоит использовать?
- Как устроены буферизированные и небуферизированные каналы в Go?
Selectel / Селектел
Заголовок раздела «Selectel / Селектел»- Как реализовать семафор через каналы?
- Есть ли разницы в скорости у буферизованных и небуферизованных каналов?
TSUM / ЦУМ
Заголовок раздела «TSUM / ЦУМ»- Какие типы каналов есть в Go?
Uzum - 1
Заголовок раздела «Uzum - 1»- Live coding task: Implement a function that multiplexes channels and returns a result channel without waiting for them to merge.
Vitech / Витех (Ви.Tech) - 1
Заголовок раздела «Vitech / Витех (Ви.Tech) - 1»- Расскажи про каналы. Какие каналы бывают? А в чем отличие буф от не буф?
Vkusvill / ВкусВилл
Заголовок раздела «Vkusvill / ВкусВилл»- Что такое каналы и для чего нужны?
- Можно ли сказать что небуферизованный канал это канал с буфером 1?
Vseinstrumenti / ВсеИнструменты
Заголовок раздела «Vseinstrumenti / ВсеИнструменты»- Что будет при чтении из закрытого канала? А писать?
Wildberries / WB - 11
Заголовок раздела «Wildberries / WB - 11»- Написать фукцию которая из канала вычитывает числа и находит K максимальных чисел сделать чтобы можно было прерывать ее работу:
Wildberries / WB - 13
Заголовок раздела «Wildberries / WB - 13»- Что такое каналы и зачем нужны?
Wildberries / WB - 4 (Команда поставщиков) — 1 кв 2025
Заголовок раздела «Wildberries / WB - 4 (Команда поставщиков) — 1 кв 2025»- Какие типы каналов бывают и как с ними работать?
Wildberries / WB - 5 (Команда спецпроектов) — 1 кв 2025
Заголовок раздела «Wildberries / WB - 5 (Команда спецпроектов) — 1 кв 2025»- Какие типы каналов бывают и как с ними работать?
- Можно ли прочитать из закрытого канала?
- Как проверить при чтении из канала получили ли мы валидное значение?
- Можно ли два раза закрыть канал?
- Что произойдет если записать в канал у которого нет читателя?
- Зачем нужен
select? Как выйти изselectне блокируясь? (имеется в видуdefault).
Wildberries / WB - 8 (Поисковая платформа)
Заголовок раздела «Wildberries / WB - 8 (Поисковая платформа)»- Допустим, у нас есть буферизированный канал, мы его закрываем и хотим читать из него. Что мы получим?
- Где у канала определяется буфер? На стеке или на куче? И от чего это зависит?
Yadro / Ядро - Рекомендованные вопросы
Заголовок раздела «Yadro / Ядро - Рекомендованные вопросы»- Что такое канал?
- zero-value канала?
- Что будет, если читать/писать nil-канал?
- Что будет, если читать из закрытого канала?
- Что будет, если писать в закрытый канал?
- Как читать из канала и не блокироваться?
- Какая разница между небуферизованным каналом и буфер.каналом емкостью 1
- Как читать из несколько каналов и не блокироваться, пока хоть в одном есть данные?
- В каком порядке отрабатывают case?
- Что произойдет в select, если один из каналов закроется?
- Как отбросить закрытые каналы?
- Написать код слияния данных из двух каналов в третий (возможны два варианта: с селектом или с отдельными го-рутинами)
- Написать код слияния данных из N каналов в (N+1)-ый (возможны два варианта: с селектом или с отдельными го-рутинами)
Yadro / Ядро - Скрининг
Заголовок раздела «Yadro / Ядро - Скрининг»- Отличия switch и select?
- Как вычитать значение из канала?
Скала^р - 1 — 4 кв 2025
Заголовок раздела «Скала^р - 1 — 4 кв 2025»- Что такое каналы в Go?
- Что такое буферизированный канал?
- Как создать буферизированный канал на 50 сообщений?
Совкомбанк — 4 кв 2025
Заголовок раздела «Совкомбанк — 4 кв 2025»- Какие бывают виды каналов?
- Что будет, если читать из неинициализированного канала?
- Что будет, если читать из закрытого канала?
- Что будет, если записать в закрытый канал?
- Что такое select? Какой порядок срабатывания кейсов у SELECT? Что будет с кейсом, если канал закрыт?
- Как прочитать n элементов из канала?
Связанные задачи
Заголовок раздела «Связанные задачи»- Написать функцию
MergeChannels, которая: - Реализовать функцию
merge, которая объединяет несколько каналов в один. - Объединить все каналы в один. Если один канал закрывается, то необходимо все остальные закрыть.
- Нужно написать select который выведет значения в порядке, как в out.
- Что выведет? Почему? Что если не будем закрывать канал stopChan? Что будет если введем default?
- Смерджить произвольное количество каналов в один канал.
- Написать код функции, которая делает merge N каналов. Весь входной поток перенаправляется в один канал.
- Даны два канала. Первый канал заполняем числами от 1 до 10. Далее числа считываем из первого по мере поступлен
- Дан слайс каналов (buttons []chan bool), каждый из которых соответствует одной кнопке. Канал получает true при