我有一个简单的go程序 -
main.go -
package main
import (
"log"
"runtime"
"time"
)
func main() {
runtime.GOMAXPROCS(1)
log.Println("running")
time.Sleep(10 * time.Minute)
}
我像这样构建二进制文件 -
GOOS=linux go build
并在centos机器中运行 -
# ./test
2017/10/27 14:20:15 running
我想知道为什么即使GOMAXPROCS
设置为1,这个简单程序也会使用2个不同的核心(1& 6)。
有时也会使用3-4个核心。
对此有何想法?
谢谢。
答案 0 :(得分:2)
您正在运行四个进程。内核将这些内容安排到内核上。 GOMAXPROCS与此无关;它只影响单个进程的线程数,而只影响用户级代码。