Golang: como verificar o número de processadores em que um programa Go está sendo executado
Eu sou novo no Google Go (Golang). Minha pergunta está relacionada com esta postagemO que exatamente o runtime.Gosched faz?. A estrutura do código é copiada abaixo. Minha pergunta é: quando eu mudo o número de processadores no GOMAXPROCS, como eu verifico quantos processadores ele está rodando? Quando eu faço 'top', ele mostra um processo que consome 100% ou menos recursos, mesmo quando o GOMAXPROCS é maior que 1. Eu ficaria grato por sua ajuda.
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()
}