不设置同名环境变量的情况下,保证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,但我在这里寻找一些确认。
原文由 mnagel 发布,翻译遵循 CC BY-SA 4.0 许可协议
2018 年更新: 默认情况下,Go 程序运行时将 GOMAXPROCS 设置为可用内核数;在以前的版本中,它默认为 1。
从 Go 1.5 开始,默认值为核心数。如果您在较新的 Go 版本中对此不满意,则只需要明确设置它。
不,不能保证默认值是多少;即使所有已知的实现都使用值“1”。如果您的代码在没有环境变量的情况下需要特定的默认值,那么您应该在代码中设置它。 另外:
(强调我的)