Что такое Go Max Procs

«Что такое Go Max Procs» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

GOMAXPROCS — это переменная окружения в Go, которая определяет максимальное количество потоков ОС, которые могут одновременно выполнять код Go. По умолчанию равно количеству логических CPU.

Пример:

func main() {
    runtime.GOMAXPROCS(4) // Устанавливаем 4 потока
    fmt.Println(runtime.GOMAXPROCS(0)) // 4 (0 возвращает текущее значение)
}

Важно:

  • Влияет только на параллельное выполнение (не на конкурентность)
  • С версии Go 1.5 по умолчанию равно runtime.NumCPU()
  • Чрезмерное увеличение может привести к contention