GOMAXPROCS задаёт максимальное количество потоков ОС (P - logical processors), на которых одновременно выполняется Go-код. По умолчанию равно числу CPU-ядер (runtime.NumCPU()). Горутин может быть гораздо больше - планировщик распределяет их по этим потокам.
import "runtime"
runtime.GOMAXPROCS(4) // не более 4 потоков для Go
// Или переменная окружения: GOMAXPROCS=4
Менять значение обычно не нужно: по умолчанию используется все ядра. Раньше по умолчанию было 1; с Go 1.5 по умолчанию NumCPU().