Подготовка к интервью

Вопросы о горутинах, планировщике и конкурентности Go

32 вопроса с ответами по теме «Горутины и планировщик Go»

32 вопроса

Что проверяют на интервью

Как устроена подборка

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

Каталог

Вопросы по теме

Найдено: 32
Теория

Можете объяснить, что означает ситуация, когда потоки или горутины в Go остаются блокированными из-за недостаточного доступа к ресурсам, и как это связано с понятием Starvation?

В Go ситуация, когда потоки (горутины) остаются заблокированными из-за недостаточного доступа к ресурсам, называется starvation (голодание).

Читать ответ
Теория

Как работает планировщик горутин в Go? Расскажите про GMP-модель.

Модель планировщика Go — GMP (Goroutine, Machine, Processor) — это система, которая управляет выполнением горутин для эффективного использования системных ресурсов.

Читать ответ
Теория

WaitGroup под капотом использует Atomic для подсчёта. WaitGroup может принимать вес работы. Как бы ты переписал семафор, чтобы методы Lock(weight int), TryLock(weight int) и Release(weight int) принимали вес? Горутина захватывает ресурсы сразу на всю операцию, а после каждого стейджа (IO-bound, CPU-bound) освобождает по чуть-чуть. Как бы ты это реализовал?

Для реализации семафора с весом (weight) в методах Lock, TryLock и Release можно использовать атомарный счетчик, который отражает текущее количество занятых ресурсов, и максимальный лимит ресурсов.

Читать ответ
Теория

В каком порядке будут выполняться горутины и почему?

Последовательность вывода 100 горутин в Go при каждом запуске, как правило, не будет одинаковой. Это связано с тем, что планировщик горутин в Go работает конкурентно и не гарантирует порядок выполнения.

Читать ответ