首页 >后端开发 >Golang >我的 Go 程序实际使用多少个处理器?

我的 Go 程序实际使用多少个处理器?

DDD
DDD原创
2024-12-06 19:13:16692浏览

How Many Processors Does My Go Program Actually Use?

验证 Golang 程序使用的处理器

执行 Golang 程序时,了解其使用的处理器数量至关重要。本文针对这个问题,提供了全面的解释和编码解决方案。

Runtime.GOMAXPROCS() 控制 Go 程序可以访问的最大逻辑处理器数量,而 Runtime.NumCPU() 返回可用的逻辑处理器。但是,最大并行度受到这两个值中最小值的限制。

要验证正在使用的处理器数量,请修改代码如下:

package main

import (
    "fmt"
    "runtime"
    "sync"
)

var wg sync.WaitGroup

func doTasks() {
    fmt.Println(" Doing task ")
    for ji := 1; ji < 100000000; ji++ {
        for io := 1; io < 10; io++ {
            // Some computations
        }
    }
    runtime.Gosched()

    wg.Done()
}

func main() {
    wg.Add(1)
    runtime.GOMAXPROCS(1) // or 2 or 4
    go doTasks()
    doTasks()
    wg.Wait()

    fmt.Println("Maximum processors:", runtime.GOMAXPROCS(0))
    fmt.Println("Available logical processors:", runtime.NumCPU())
    fmt.Println("Maximum parallelism:", runtime.MaxParallelism())
}

此增强的代码添加了功能显示 Runtime.GOMAXPROCS()、Runtime.NumCPU() 和 Runtime.MaxParallelism() 值,提供程序处理器的清晰视图用法。

以上是我的 Go 程序实际使用多少个处理器?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn