-2

我有一个简单的围棋程序 -

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)。

使用 2 个 cpu 内核处理

有时也使用 3-4 个内核。

对此有任何想法吗?

谢谢你。

4

1 回答 1

1

您正在运行四个进程。内核将它们调度到内核上。GOMAXPROCS 与此无关;它只影响单个进程的线程数,并且只影响用户级代码。

于 2017-10-27T11:39:06.157 回答