Когда стоит ограничить количество используемых ядер в Go

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

Ответ

В Go можно ограничить количество используемых ядер через runtime.GOMAXPROCS(n). Это полезно в следующих случаях:

  1. Изоляция ресурсов – когда нужно оставить ядра для других процессов (например, в контейнерах).
  2. Тестирование – для проверки поведения при ограниченных ресурсах.
  3. Избежание contention – если приложение сильно нагружает CPU и вызывает contention (например, много блокировок).

Пример:

package main

import (
    "runtime"
)

func main() {
    // Ограничиваем до 2 ядер
    runtime.GOMAXPROCS(2)
    // Далее код будет использовать не более 2 ядер
}