我是Google Go(Golang)的新手。我的問題是關於這個職位What exactly does runtime.Gosched do?。代碼的結構如下所示。我的問題是,當我更改GOMAXPROCS中的處理器數量時,如何驗證它運行的處理器數量。當我做'頂部'時,它會顯示a.out流程,即使GOMAXPROCS超過1,也會消耗100%或更少的資源。我將非常感謝您的幫助。Golang:如何驗證Go程序正在運行的處理器數
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()
}
你正在測試這個操作系統?此外,知道您使用哪個CPU會很有幫助。我無法重現這種行爲。 – nemo
cat/etc/* - 發佈返回:紅帽企業Linux工作站版本6.3(聖地亞哥)。操作系統是Linux。 CPU是Intel(R)Xeon(R)CPU,X5460 @ 3.16GHz。 NumCPU返回8. – user984260
@nemo程序運行良好。只有我很好奇如何查看它正在運行的處理器的數量 – user984260