Sobes.tech
Назад к вопросам
Senior
2

Куда попадают горутины при создании — в локальную или глобальную очередь планировщика Go?

Компании, где спрашивали
Базис

Ответ от нейросети

sobes.tech AI

При создании горутины в Go она попадает в локальную очередь планировщика (local run queue), которая принадлежит конкретному M (машине — системному потоку).

Go runtime использует модель M:N, где M — системные потоки, а G — горутины. Каждая M имеет свою локальную очередь горутин для выполнения. Если локальная очередь переполняется или пуста, планировщик может балансировать горутины между локальными и глобальной очередью.

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