Ответ
В Go можно ограничить количество используемых процессоров с помощью runtime.GOMAXPROCS(n), где n — желаемое количество. Это влияет на планировщик горутин, но не на физические ограничения машины.
Пример:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println("До:", runtime.GOMAXPROCS(0)) // Текущее значение
runtime.GOMAXPROCS(2) // Устанавливаем лимит
fmt.Println("После:", runtime.GOMAXPROCS(0))
}
Нюансы:
- Если
n < 1, значение не меняется. - По умолчанию
GOMAXPROCSравен количеству ядер CPU. - Ограничение не гарантирует точное использование
nядер (ОС может распределять нагрузку иначе).