Golang: So überprüfen Sie die Anzahl der Prozessoren, auf denen ein Go-Programm ausgeführt wird

Ich bin neu bei Google Go (Golang). Meine Frage bezieht sich auf diesen BeitragWas genau macht runtime.Gosched?. Die Struktur des Codes ist wie folgt. Meine Frage lautet: Wie überprüfe ich, auf wie vielen Prozessoren GOMAXPROCS ausgeführt wird, wenn ich die Anzahl der Prozessoren ändere? Wenn ich "top" mache, wird ein "out" -Prozess angezeigt, der 100% oder weniger Ressourcen verbraucht, selbst wenn GOMAXPROCS größer als 1 ist. Ich wäre dankbar für Ihre Hilfe.

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()
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage