> Сколько потоков запускается в runtime приложении Go по умолчанию (Go)

Уровень: middle · Роль: backend · Категория: Технические вопросы

Компании: Фабрика решений

Стек: Go

> Пример ответа

По умолчанию в Go runtime запускается количество потоков ОС (M), равное значению переменной окружения GOMAXPROCS. Если она не задана, то это число равно количеству логических ядер процессора (CPU) на машине, где выполняется программа. Например, на 4-ядерном процессоре будет запущено 4 потока ОС.

Однако важно понимать, что Go использует модель M:N - планировщик runtime распределяет горутины (G) по потокам ОС (M), которые привязаны к логическим процессорам (P). Количество P как раз и определяется GOMAXPROCS. При этом один поток ОС (M) может быть заблокирован системным вызовом, и runtime может создать дополнительный поток для выполнения других горутин, но это уже динамическое поведение, а не значение «по умолчанию».

Таким образом, ответ: количество потоков ОС в runtime по умолчанию равно runtime.GOMAXPROCS(0), что обычно совпадает с числом ядер CPU.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью