The GOMAXPROCS environment variable (and Go function) allows you to limit the number of operating system threads that can execute user-level Go code simultaneously.
Starting with Go version 1.5, the default value of GOMAXPROCS should be the number of cores available on your Unix system.
Although using a GOMAXPROCS value that is smaller than the number of the cores a Unix machine has might affect the performance of a program, specifying a GOMAXPROCS value that is bigger than the number of the available cores will not make your program run faster!
The code of goMaxProcs.go allows you to determine the value of the GOMAXPROCS - it will be presented in two parts.
The first part is the following:
package main import ( "fmt" "runtime" )
func getGOMAXPROCS() int { return runtime.GOMAXPROCS(0) }
The second part is the following:
func...