Конкурентность и горутины
Вопросов: 208 из 72 собеседований. Источник указан в заголовке группы.
Часто повторяются
Заголовок раздела «Часто повторяются»- Что такое горутина? — встречается 5×
- Как работает горутина? — встречается 2×
- В чем разница между конкурентностью и параллелизмом? — встречается 2×
- Как работает планировщик в Go? — встречается 2×
- Как работать с малой в условиях конкурентности? — встречается 2×
- Можно ли отловить панику в горутине из другой горутины? — встречается 2×
Все вопросы
Заголовок раздела «Все вопросы»AdCamp — 1 кв 2026
Заголовок раздела «AdCamp — 1 кв 2026»- Что такое горутина?
- Почему можно запустить 1000+ горутин при лимите ОС в 4-8 потоков?
- Из-за чего горутина может блокироваться?
- Чем отличается конкурентное выполнение от параллельного?
Alta Personnel — 1 кв 2026
Заголовок раздела «Alta Personnel — 1 кв 2026»- Как в Go реализовать конкурентный доступ к общей переменной без гонок данных?
amoCRM — 1 кв 2025
Заголовок раздела «amoCRM — 1 кв 2025»- Как бы вы реализовали
worker poolна Go? - Что такое модель планировщика GMP?
- Что такое утечка горутин и как ее обнаружить?
- Какие состояния бывают у горутины?
- Что такое
local run queueиglobal run queueв планировщике? - Что такое «голодание» в планировщике и как его избежать?
Andersen - 1
Заголовок раздела «Andersen - 1»- Memory allocation. Stack and heap a) Each goroutine allocates an expandable stack b) Pointers and the structures they point to escape to the heap c) Garbage collector: mark & sweep algorithm
- Channels. Purpose. Types of channels a) What is a channel under the hood? Usage patterns i) Buffered - works asynchronously ii) Unbuffered iii) Passing values between goroutines b) What happens if you write to a closed channel? i) Panic c) What happens if you read from a closed channel? i) Default value d) Non-blocking write/read to a channel? i) select case ii) How to check if a channel is closed? iii)
if v, ok:= <-channel; oke) What doeslen(chan)of a unidirectional channel return? i) The number of elements in the channel - Concurrency a) What are goroutines? How are they structured? How many goroutines can there be? Ratio of goroutines to the number of processors i) A goroutine is a function executed in parallel with others ii) Created via
go+ function call iii) Lightweight (~2 KB of memory) iv) Preemptive multitasking b) The runtime package i) Documentation: pkg.go.dev/runtime ii)runtime.NumGoroutine()- returns the number of goroutines iii)StartTrace()andStopTrace()- execution tracing c) Communication between goroutines i) Usingcontext.Contextfor lifecycle management d) Ways to control goroutine execution (WaitGroup, ErrorGroup) i)sync.WaitGroup- waiting for a group of goroutines to finish - Goroutine leaks. How to avoid them? a) Goroutines run independently of main b) Infinite loops without exit conditions c) Explicit termination via channels or context d) Using
sync.WaitGroup
Avito / Авито (платформа)
Заголовок раздела «Avito / Авито (платформа)»Вопросы: стандартные вопросы про горутины, каналы, пакет sync и рантайм Go.
- как при этом будет работать P с горутинами в этой задаче?
Avito / Авито (скрининг) - 2 — 3 кв 2025
Заголовок раздела «Avito / Авито (скрининг) - 2 — 3 кв 2025»- В чем разница между кооперативной и вытесняющей многозадачностью?
Bizone / Бизон
Заголовок раздела «Bizone / Бизон»- Почему в Go используются горутины, а не потоки?
Burger King / Бургер Кинг
Заголовок раздела «Burger King / Бургер Кинг»- Конкурентность vs. параллельность.
- Поток, горутина: отличия.
- Типы многозадачности. Вытесняющая многозадачность: зачем добавили?
- Контекст: как отмена влияет на горутины? Как проверить контекст?
Citydrive / Cитидрайв — 1 кв 2025
Заголовок раздела «Citydrive / Cитидрайв — 1 кв 2025»- Как доработать код, чтобы вывело оба числа?
- Как работает планировщик, как устроены очереди?
Clearway Integration (clearway.ru) — 1 кв 2025
Заголовок раздела «Clearway Integration (clearway.ru) — 1 кв 2025»- Что такое concurrency и планировщик?
Cloud.ru — 4 кв 2025
Заголовок раздела «Cloud.ru — 4 кв 2025»- Что такое параллельность и конкурентность в Go?
- Что такое планировщик?
CyberOk / КиберОк
Заголовок раздела «CyberOk / КиберОк»- Почему горутины легче и дешевле потоков?
- Что будет когда Go программа запущена в системе с одним ядром и в ней запускается 20 горутин, и одна из горутин начала выполнять тяжелую задачу?
- В Go реализована вытесняющая или кооперативная многопоточность?
- Как предупредить утечку горутин?
- Как оптимизировать чтобы не запускать все 50 тысяч горутин?
- Сколько ресурсов потребляет управление одной горутиной? (около 0.15% cpu на 100 горутин)
Diasoft — 4 кв 2025
Заголовок раздела «Diasoft — 4 кв 2025»- Безопасна ли стандартная
mapдля конкурентного использования из нескольких горутин без дополнительной синхронизации?
Domclick / Домклик — 1 кв 2025
Заголовок раздела «Domclick / Домклик — 1 кв 2025»- Как работает горутина?
- Вопрос про case condition. Что будет, если 2 горутины пытаются получить доступ к одной переменной?
Eapteka / Еаптека (Сбер Еаптека)
Заголовок раздела «Eapteka / Еаптека (Сбер Еаптека)»- что такое дата рейс, а просто рейс?
- как синхронизировать горутины
- Реализовать worker pool для параллельной обработки запросов к различным ресурсам
EffectiveSoft — 1 кв 2026
Заголовок раздела «EffectiveSoft — 1 кв 2026»- Что такое утечка горутин и как ее предотвратить?
- Что такое горутина и чем она отличается от потока?
- Для создания горутины в Go требуется около 2 КБ памяти, тогда как для потока - несколько мегабайт. Из чего складывается эта разница в потреблении памяти?
- Может ли одновременно работать больше горутин, чем имеется ядер процессора?
- Что произойдет при попытке отправить данные в небуферизированный канал без предварительного запуска горутины для чтения?
Employcity
Заголовок раздела «Employcity»- Что такое горутина и как работает планировщик в Go?
- Как проводится переключение горутин?
- Почему горутины потребляют очень мало ресурсов относительно тредов ос?
- Стек горутины всегда занимает 2кб?
Exness - 1
Заголовок раздела «Exness - 1»- What ’s the point of forking the process if Goroutine is much more lightweight?
- When Goroutine wakes up after it was blocked, does it migrate to another thread?
Exness - 2
Заголовок раздела «Exness - 2»- Standard questions about Go: slices, maps, goroutines, channels, escape analysis;
Flant / Флант - 3 — 1 кв 2026
Заголовок раздела «Flant / Флант - 3 — 1 кв 2026»- Что такое
contextв Go и как он связан с отменой горутин?
Group-IB - 1
Заголовок раздела «Group-IB - 1»- Если в одном потоке был открыт файл, то можно передать хендлер в другой поток?
- Что такое горутина в Go и как она соотносится с тредами ОС?
Headframe — 1 кв 2026
Заголовок раздела «Headframe — 1 кв 2026»- Что такое горутина? Для чего используется?
- Как синхронизировать горутины? Какой метод используешь чаще?
- Как отловить панику в горутине?
- Как реализовать пул воркеров на Go?
Holodilnik / Холодильник
Заголовок раздела «Holodilnik / Холодильник»- Чем отличаются горутины от потоков?
- Можно ли влиять на работу планировщика?
InDrive - 1
Заголовок раздела «InDrive - 1»- What happens in the code when you write
goand a goroutine? - There are three goroutines where run is blocked. How to make the steady function simultaneously unblock all three runs?
- Complete the code so that the task runs asynchronously with a limit on the number of simultaneous requests
Kaspersky / Касперский - 1
Заголовок раздела «Kaspersky / Касперский - 1»- Как отдаются значения с одной горутины в другую?
- Размер стека у горутины?
Kaspersky / Касперский - 2
Заголовок раздела «Kaspersky / Касперский - 2»- Допустим есть 100 операций расчета квадратного корня. Если их запустить в 100 горутинах, то получим ли мы прирост по производительности?
Kaspersky / Касперский - 5 — 2 кв 2025
Заголовок раздела «Kaspersky / Касперский - 5 — 2 кв 2025»- Что такое gorutine? Для чего используют?
- Что будет, если вызвать несколько gorutine в main и не ждать их завершения?
- При обработке гигабайт данных в горутине, где хранятся эти данные?
- В чем разница между конкурентностью и параллелизмом?
Kvando Technologies
Заголовок раздела «Kvando Technologies»- Расскажи про горутины? Как устроены?
- Какие способы синхронизации горутин знаешь?
Lamoda / Ламода - 1
Заголовок раздела «Lamoda / Ламода - 1»- Что такое горутина? Кем управляеться горутина?
- Почему wg.Add(1) нельзя делать прямо в начале ожидаемой горутины?
- В какой последовательности в представленной программе отработают запущенные горутины?
- Какие проблемы могут быть, если в представленной программе в urls будет 100k урлов?
- Как можно обойти эти проблемы?
- Расскажите про планировщик.
- Что такое горутина?
- В какой момент происходит переключение горутин?
- Какой-то странный вопрос про поведение планировщика при сетевых запросах.
- Что происходит с горутиной, когда она блокируется на чтении файла?
- Какие отличия между сетевым запросом и чтением из файла с точки зрения планировщика?
- Исправь представленную программу, чтобы как только какая-нибудь горутина ответила с ошибкой, то программа завершилась.
- Что будет, если в программе мы будем читать по ключу «a», а писать по ключу «b»?
Magnit / Магнит - 1 (Лояльность) — 1 кв 2025
Заголовок раздела «Magnit / Магнит - 1 (Лояльность) — 1 кв 2025»- Про планировщик что знаешь?
- Как планировщик работает с каналами? Где находятся горутины которые ждут чтение/запись в канал?
- Расскажи про голодающие горутины;
Magnit / Магнит - 2 (E-com) — 1 кв 2025
Заголовок раздела «Magnit / Магнит - 2 (E-com) — 1 кв 2025»- Проверяет баланс пользователей;
- Как защитить баланс от гонки, но чтобы в этот момент его получение было доступно из других параллельных запросов?
- Как ускорить или отказаться от проверки “if sourceAccount.Balance >= amount”
- В структуре Account какие могут быть проблемы?
Magnit / Магнит - 3 (SuperApp) — 1 кв 2025
Заголовок раздела «Magnit / Магнит - 3 (SuperApp) — 1 кв 2025»- Делаем нагрузочное тестирование. Данные с запросов мы складываем в in-memory хранилище. Что лучше юзать: каналы или мьютексы? Что будет работать быстрее?
Magnit / Магнит - 4 — 2 кв 2025
Заголовок раздела «Magnit / Магнит - 4 — 2 кв 2025»- Что можешь рассказать про GMP модель?
- Как работает планировщик в Go?
Magnit / Магнит - 6 — 4 кв 2025
Заголовок раздела «Magnit / Магнит - 6 — 4 кв 2025»- Что такое горутина?
- Какие существуют механизмы очистки одной горутины?
- Как работает планировщик в Go?
- Для чего нужны горутины? Почему нельзя использовать просто потоки?
- Какие режимы есть у планировщика?
Magnit / Магнит - 7 — 4 кв 2025
Заголовок раздела «Magnit / Магнит - 7 — 4 кв 2025»- Что такое горутина? В чем ее преимущество перед потоками?
- За счет чего обеспечивается «бесплатность» коммуникации между горутинами?
- Всегда ли эффективно решать задачу с помощью горутины? В каких случаях они не дадут выигрыш?
- Как классифицировать операции, с которыми работают горутины? В каком случае будет преимущество?
- Что такое стек горутины?
MTS / МТС (Enablement platform)
Заголовок раздела «MTS / МТС (Enablement platform)»- Горутины, планировщики как работают? По каким критериям горутины переключаются? В каких случаях рекомендуется использовать горутины?
MTS / МТС (Link) — 1 кв 2025
Заголовок раздела «MTS / МТС (Link) — 1 кв 2025»- Гошка: что такое горутины, примитивы синхронизации, что такое мапа, как устроена, всякие эвакуации, решения коллизий и т. п.
MTS / МТС (тестирование) — 1 кв 2025
Заголовок раздела «MTS / МТС (тестирование) — 1 кв 2025»- Каналы могут использоваться для передачи данных между горутинами, тогда как массивы исключительно для хранения данных;
- Чтобы управлять памятью горутин;
- Чтобы ускорить выполнение горутин;
- Чтобы контролировать выполнение горутин;
- Для обмена данными между горутинами.
- Она удаляет текущую горутину;
- Она создает новую горутину;
- Она позволяет другим горутинам выполняться;
- Она прерывает выполнение текущей горутины;
- Она устанавливает приоритет текущей горутины.
- Что такое горутина в Go?;
- Легковесные потоки;
Myoffice / МойОфис
Заголовок раздела «Myoffice / МойОфис»- Есть функция copy, она вызывает batchCopy и нужно сделать чтобы она возвращала прогресс копирования, нужно чтобы можно было ее отменить, чтобы если кто-то не захочет читать прогресс чтобы она не блокировaaлась
Ozon / Озон (вопросы и ревью кода) — 4 кв 2025
Заголовок раздела «Ozon / Озон (вопросы и ревью кода) — 4 кв 2025»- Входит ли системная горутина sysmon в лимит потоков, заданный GOMAXPROCS?
Ozon / Озон (системный дизайн) - 2 — 2 кв 2025
Заголовок раздела «Ozon / Озон (системный дизайн) - 2 — 2 кв 2025»- Давать возможность «зарезервировать» ресурсы под заявку, чтобы не было гонки при параллельных запросах;
Positive Technologies
Заголовок раздела «Positive Technologies»- Как реализован параллелизм в Go и какие средства синхронизации есть?
Rambler / Рамблер - 1 — 2 кв 2025
Заголовок раздела «Rambler / Рамблер - 1 — 2 кв 2025»- Подробно про многопоточность;
Rutube - 1
Заголовок раздела «Rutube - 1»- Можешь рассказать про многопоточность и параллельность в Go?
- Какая свять между процессом, тредом и горутиной?
- Какие способы общение между горутинами и какие проблемы могут возникнуть?
- Почему у мьютекса и атомика нет проблем с конкурентностью?
Samokat / Самокат (полный список)
Заголовок раздела «Samokat / Самокат (полный список)»- Какие есть особенности конкурентной записи в мапу?
- В чем отличие параллелизма от конкурентности?
- используя функцию printNumber, последовательно напечатать числа от 1 до 10;
- измените код в main так, чтобы распараллелить печать;
- изменить программу так, чтоб одновременно выводились по 5 чисел.
SberAuto / СберАвто
Заголовок раздела «SberAuto / СберАвто»- Что используется для передачи данных между горутинами?
SberDevices / СберДевайсы
Заголовок раздела «SberDevices / СберДевайсы»- Что такое горутины? Зачем они нужны?
- Чем отличается горутина от системных тредов?
- Как шедулер переключает горутины?
- Как горутины общаются между собой и синхронизируются?
SberTech SynAI — 1 кв 2026
Заголовок раздела «SberTech SynAI — 1 кв 2026»- Что такое горутина?
- Какие паттерны конкурентности вы использовали в работе?
- Как вы отслеживаете дедлоки при работе с горутинами?
- Есть ли опыт настройки планировщика? Для чего может потребоваться настройка планировщика?
- Какие состояния могут быть у горутины?
Selectel / Селектел
Заголовок раздела «Selectel / Селектел»- Как работает конкурентность в Го? В какие моменты происходит переключение между горутинами?
- Если GOMAXPROCS=1 и происходит syscall в горутине, но если другие, работа программы останнавливается?
TSUM / ЦУМ
Заголовок раздела «TSUM / ЦУМ»- В чем разница между процессом ОС и горутиной?
Tutu / Туту
Заголовок раздела «Tutu / Туту»- Что такое конкурентность и она устроена в Go?
- Всегда ли код в Go выполняется параллельно?
Vitech / Витех (Ви.Tech) - 1
Заголовок раздела «Vitech / Витех (Ви.Tech) - 1»- Как работает шедулер? Что такое GMP модель?
Vitech / Витех (Ви.Tech) - 2 — 1 кв 2025
Заголовок раздела «Vitech / Витех (Ви.Tech) - 2 — 1 кв 2025»- Как реализовать конкурентную запись в хэш-таблицу в Golang?
VK / ВК (ВКонтакте) - 1 — 2 кв 2025
Заголовок раздела «VK / ВК (ВКонтакте) - 1 — 2 кв 2025»- подумать о многопоточности (если сразу это не уточнил и не сделал).
VK / ВК (ВКонтакте) - скрининг - 2
Заголовок раздела «VK / ВК (ВКонтакте) - скрининг - 2»- Что такое горутина в контексте Go?
Vseinstrumenti / ВсеИнструменты
Заголовок раздела «Vseinstrumenti / ВсеИнструменты»- Можно ли один и тот же byte slice в нескольких горутинах? А зачем так делать? )
Wildberries / WB - 11
Заголовок раздела «Wildberries / WB - 11»- О чем нужно позаботиться, когда стартуешь горутину?
- Как контролировать жизненный цикл горутины?
- Какие сложности возникают при работе со слайсом из нескольких горутин?
- Сколько горутин максимально можно запустить? Что знаешь про GMP модель?
- Как сделать graceful shutdown? Как дождаться, чтобы все горутины завершили работу (https://habr.com/ru/articles/771626/ )
Wildberries / WB - 13
Заголовок раздела «Wildberries / WB - 13»- Расскажи про горутины
- Чем отличается конкурентность от многопоточности?
Wildberries / WB - 15 — 4 кв 2025
Заголовок раздела «Wildberries / WB - 15 — 4 кв 2025»- Какой начальный размер стека выделяется при создании новой горутины в Go?
- Какой максимальный размер стека может быть у горутины?
- Что произойдет, если горутина попытается выделить слишком много памяти под стек?
- Был ли у вас опыт осознанного использования блокировок в PostgreSQL для защиты данных от конкурентного изменения?
Wildberries / WB - 16 — 4 кв 2025
Заголовок раздела «Wildberries / WB - 16 — 4 кв 2025»- Разница между асинхронностью и многопоточностью?
Wildberries / WB - 4 (Команда поставщиков) — 1 кв 2025
Заголовок раздела «Wildberries / WB - 4 (Команда поставщиков) — 1 кв 2025»- Как работать с малой в условиях конкурентности?
- Можно ли отловить панику в горутине из другой горутины?
- Чем отличается concurrency от параллелизма, можно ли быть параллелизм на 1 ядре?
Wildberries / WB - 5 (Команда спецпроектов) — 1 кв 2025
Заголовок раздела «Wildberries / WB - 5 (Команда спецпроектов) — 1 кв 2025»- Как работать с малой в условиях конкурентности?
- Зачем нужны горутины и что это такое?
- Почему горутины легковесные?
- Чем ограничьено создание горутин? Сколько можно создать?
- Расскажи про GMP;
- Что происходит с горутиной, если она делает сетевой вызов?
- Можно ли отловить панику в горутине из другой горутины?
Wildberries / WB - 8 (Поисковая платформа)
Заголовок раздела «Wildberries / WB - 8 (Поисковая платформа)»- Что такое кооперативная и вытесняющая многозадачность?
- Как устроен планировщик в Go? Расскажи про GMP модель
Wildberries / WB - 9 (Рекламная платформа)
Заголовок раздела «Wildberries / WB - 9 (Рекламная платформа)»- GMP модель
Yadro / Ядро
Заголовок раздела «Yadro / Ядро»- Какая изоляция в потоках?
- Какие проблемы могут возникнуть при многопоточной работе?
Yadro / Ядро - Рекомендованные вопросы
Заголовок раздела «Yadro / Ядро - Рекомендованные вопросы»- Что такое thread pool, какого он размера и зачем он нужен?
- Что происходит, когда вы отправляете данные из горутины в сетевое соединение?
- Что такое рейс-кондишн?
- Как бороться?
- Как запустить N задач в параллель в Go?
- В какой момент запустится горутина?
- С помощью wait group - что произойдет, если сделать wg.Add(1) внутри каждой горутины, а не перед их запуском?
- Как получить результаты из горутин?
Yandex / Яндекс (3й этап) — 4 кв 2025
Заголовок раздела «Yandex / Яндекс (3й этап) — 4 кв 2025»- Условно бесконечный.
- Источник никогда не возвращает более MaxItems записей за один вызов Next.
- В рамках одной «сессии»(одного вызова функции Pipe) источник каждый раз возвращает новые данные на каждый вызов Next.
- Не может обработать более MaxItems за один раз.
Zaymigo / Займиго
Заголовок раздела «Zaymigo / Займиго»- Что такое горутина?
- Как работает горутина?
- Как управляется горутина?
- Какой тип памяти у горутины?
- Есть две глобальные горутины, каждая из них запускает десять своих подгорутин, выполняющих свою бизнес логику. Как можно реализовать механизм возврата в консистентное состояние, если в одной из этих десяти подгорутин произошла ошибка?
Клауд Солюшенс — 1 кв 2026
Заголовок раздела «Клауд Солюшенс — 1 кв 2026»- Что такое семафор в контексте конкурентного программирования?
МВД РФ (Паспортно-визовый сервис) — 4 кв 2025
Заголовок раздела «МВД РФ (Паспортно-визовый сервис) — 4 кв 2025»- Что такое планировщик в Go?
- Что такое модель GMP? Для чего она?
- Что такое горутина? Почему ее «бесплатно» переключать?
- Предположите, возможна ли такая ситуация, что появляется столько горутин, что они начинают друг другу мешать? Как бы вы исправляли эту проблему?
Скала^р - 2 — 1 кв 2026
Заголовок раздела «Скала^р - 2 — 1 кв 2026»- Горутины и планировщик Go: базовые вопросы;
Совкомбанк — 4 кв 2025
Заголовок раздела «Совкомбанк — 4 кв 2025»- Как реализовано конкурентное программирование в Go?
- В чем разница между конкурентностью и параллелизмом?
- Как можно снаружи завершить выполнение горутины?
- Как получить результаты из горутины?
Связанные задачи
Заголовок раздела «Связанные задачи»- Необходимо написать параллельную обработку в кол-ве горутин равном workers. Получаем данные из канала in, над
- Реализовать worker pool. Есть 10 задач (функций), каждая засыпает на 1 сек и выводит номер воркера, который эт
- 10000 параллельных запросов, число потоков и т.д.
- Есть 50 тысяч горутин, которые пишут в 50 тысяч каналов. Необходимо написать функцию, которая должна читать из
- Необходимо закончить функцию processInParallel чтобы производилась параллельная работа processData в 5 потоков
- Нужно было сделать параллельную обработку операции в out, при этом сохраняя порядок такой же, как и в in.
- Реализовать конкурентный логгер.
- Необходимо реализовать middleware. Middleware будет отбрасывать n+1 запрос за секунду. Мы не пропускаем больше
- Есть список ключевых слова в SQL: ORDER BY, OFFSET, WHERE, LIMIT, HAVING, GROUP BY. В каком порядке выполняютс
- Вы разрабатываете систему обработки данных для подготовки аналитического отчета о продажах. У вас есть массив
- Необходимо написать Worker Pool, чтобы выполнить параллельно numJobs заданий, используя numWorkers горутин. Эт
- У вас есть список URL-адресов, которые нужно обработать параллельно. Однако одновременно можно запускать не бо
- Условно есть метод и его нужно обернуть в горутину. Если при получении данных пришло что-то странное, то верну
- Напиши на Go программу, которая ожидает сложения ряда чисел от 0 до n (n передается через переменную окружения
- Написать программу, которая должна запускать N корутин которые выполняют функцию do. Так же программа должна п
- Дана сигнатура функции callRequestsForURLs. Необходимо реализовать логику параллельной отправки HTTP запросов.
- Необходимо выполнить HTTP-запросы к N заданным URL. Требуется ограничить количество одновременных запросов зна
- Реализовать Cacher для Cache. Методы вызываются из разных горутин и должны быть потокобезопасными. Чистить кэш
- GetData возвращает данные из getter, страхуя кэшом в случае ошибки. Проблема: getter может отвечать очень долг
- Написать асинхронный инкремент счетчика var count int.
- Написать асинхронные GET запросы на google.com, wildberries.ru.
- Требуется распараллелить fetch функцию, в случае возврата ошибки одной из рутин, стопать все (сигнатуры fetch
- Нам нужно передать данные из некоторого источника некоторому потребителю. При этом источник отдает данные небо