Google Go (Golang)를 처음 사용했습니다. 제 질문은이 게시물 What exactly does runtime.Gosched do?과 관련이 있습니다. 코드의 구조는 다음과 같습니다. 내 질문은 GOMAXPROCS의 프로세서 수를 변경할 때 실행중인 프로세서의 수를 어떻게 확인할 수 있습니까? "top"을 선택하면 GOMAXPROCS가 1보다 클 때도 100 % 이하의 리소스를 소비하는 a.out 프로세스가 표시됩니다. 귀하의 도움에 감사드립니다.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()
}
테스트 할 OS는 무엇입니까? 또한 사용하는 CPU를 아는 것이 도움이됩니다. 나는 그 행동을 재현 할 수 없다. – nemo
cat/etc/* - release는 Red Hat Enterprise Linux 워크 스테이션 릴리스 6.3 (산티아고)을 반환합니다. OS는 리눅스입니다. CPU는 Intel (R) Xeon (R) CPU, X5460 @ 3.16GHz입니다. NumCPU는 8을 반환합니다. – user984260
@nemo 프로그램이 완벽하게 실행됩니다. 그저 실행중인 프로세서의 수를 보는 방법이 궁금했습니다. – user984260