当未设置相同名称的环境变量时,是否可以确保将GOMAXPROCS设置为1?
此代码显示值:
package main
import (
"runtime"
"fmt"
)
func getGOMAXPROCS() int {
return runtime.GOMAXPROCS(0)
}
func main() {
fmt.Printf("GOMAXPROCS is %d\n", getGOMAXPROCS())
}
并像这样运行它:
$ GOMAXPROCS= go run max.go
GOMAXPROCS is 1
表示在这种情况下为1,但是我在这里寻找一些确认。
最佳答案
2018年更新:
默认情况下,Go程序在将GOMAXPROCS设置为可用内核数的情况下运行;在以前的版本中,它默认为1。
从Go 1.5开始,默认值为核心数。
如果您在较新的Go版本中对此不满意,则只需要显式设置即可。
不,不能保证默认值是多少。即使所有已知的实现都使用值“1”。如果您的代码在没有环境变量的情况下需要特定的默认值,则应在代码中进行设置。 Additionally:
(强调我的)