GOMAXPROCS задаёт максимальное число потоков ОС, которые одновременно выполняют пользовательский Go-код. По умолчанию равен количеству CPU (runtime.NumCPU()).
Это не лимит количества горутин - горутин может быть гораздо больше; они распределяются по этим потокам. Менять имеет смысл при отладке или на нестандартных системах.
runtime.GOMAXPROCS(1) // однопоточное выполнение Go-кода