登录
首页 >  Golang >  Go问答

GOMAXPROCS 默认值是多少?

来源:Golang技术栈

时间:2023-04-10 06:48:22 360浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《GOMAXPROCS 默认值是多少?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

不设置同名环境变量时,是否保证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”。如果您的代码在没有环境变量的情况下需要特定的默认值,那么您应该在代码中设置它。另外

GOMAXPROCS 设置可以同时执行的最大 CPU 数量并返回之前的设置。如果 n 当调度程序改进时,此调用将消失。

(强调我的)

本篇关于《GOMAXPROCS 默认值是多少?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表