Ответ
В Go можно ограничить количество используемых ядер через runtime.GOMAXPROCS(n). Это полезно в следующих случаях:
- Изоляция ресурсов – когда нужно оставить ядра для других процессов (например, в контейнерах).
- Тестирование – для проверки поведения при ограниченных ресурсах.
- Избежание contention – если приложение сильно нагружает CPU и вызывает contention (например, много блокировок).
Пример:
package main
import (
"runtime"
)
func main() {
// Ограничиваем до 2 ядер
runtime.GOMAXPROCS(2)
// Далее код будет использовать не более 2 ядер
}