Google Go (Golang) は初めてです。私の質問は、この投稿に関連しています。runtime.Gosched は何をしますか? . コードの構造は以下のとおりです。私の質問は、GOMAXPROCS でプロセッサの数を変更するときに、それが実行されているプロセッサの数を確認するにはどうすればよいかということです。top すると GOMAXPROCS が 1 より大きくても 100% 以下のリソースを消費する a.out プロセスが表示されます。
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()
}