Что такое GOMAXPROCS и сколько горутин будут работать параллельно из 1000?

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

Короткий ответ

Что ответить на собеседовании

GOMAXPROCS — это переменная окружения или настройка в Go, которая определяет максимальное количество операционных системных потоков (OS threads), которые планировщик Go может использовать одновременно для выполнения горутин.

Подробный разбор

Ответ с пояснениями

GOMAXPROCS — это переменная окружения или настройка в Go, которая определяет максимальное количество операционных системных потоков (OS threads), которые планировщик Go может использовать одновременно для выполнения горутин.

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

Как это работает:

  • Go запускает множество горутин — легковесных потоков внутри приложения.
  • Планировщик Go распределяет эти горутины по доступным OS потокам.
  • GOMAXPROCS ограничивает число таких потоков, чтобы не создавать избыточную конкуренцию за ресурсы CPU.

Пример установки GOMAXPROCS в коде:

import (
    "runtime"
)

func main() {
    runtime.GOMAXPROCS(4) // ограничить до 4 потоков
    // остальной код
}

Таким образом, GOMAXPROCS помогает управлять параллелизмом и производительностью Go-приложения.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку