验证 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中文网其他相关文章!