我是 Google Go(Golang)的新手。我的问题与这篇文章有关runtime.Gosched 到底做了什么?. 代码结构复制如下。我的问题是,当我更改 GOMAXPROCS 中的处理器数量时,我如何验证它正在运行多少个处理器。当我执行“top”时,它会显示 a.out 进程,即使 GOMAXPROCS 大于 1,它也会消耗 100% 或更少的资源。我将不胜感激您的帮助。
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()
}