登录
首页 >  Golang >  Go教程

Go语言中Goroutine的设置方式

来源:脚本之家

时间:2022-12-24 08:19:13 397浏览 收藏

本篇文章给大家分享《Go语言中Goroutine的设置方式》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

一、 通过runtime包进行多核设置

1.NumCPU()获取当前系统的cpu核数

2.GOMAXPROCS设置当前程序运行时占用的cpu核数

版本1.6之前默认是使用1个核,而之后是全部使用。

好玩的程序:

func doSomething() {
    var i int
    for {
        i++
    }
}

func main() {

    cpu := runtime.NumCPU()
    fmt.Println("本机cpu核数:", cpu)

    fmt.Println("输入模拟的cpu数:")
    reader := bufio.NewReader(os.Stdin)
    buf, _ := reader.ReadBytes('\n')
    cmdStr := (string)(buf)
    num, err := strconv.Atoi(strings.Trim(cmdStr, "\r\n"))

    if err != nil || num > cpu || num  0; j-- {
        fmt.Printf("程序倒计时退出: %ds...\n", j)
        time.Sleep(time.Second)
    }
    fmt.Printf("程序退出")
}

我的电脑是8核的,分别运行1 2 4 8,看下cpu的使用率:

图一 未开始运行

图二 运行1个cpu

图三 运行2个cpu

图四 运行4个cpu

图五 运行8个cpu

二、Goroutine的调度原理复习

之前的记录 Go语言中并发的工作原理

今天带大家了解了routine、设置的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>