这个问题在这里已经有了答案:
is it possible to force a go routine to be run on a specific CPU?
(2 个回答)
2年前关闭。
我需要运行许多 go 例程并将它们绑定(bind)到单独的 CPU 内核以进行基准测试。
我已经尝试过 runtime.LockOSThread() 但这会显着降低性能。我不想将 go 例程锁定到特定线程,据我所知,LockOSThread 就是这样做的。
例如:如果我有 n 个 goroutine,其中 n>1,它们应该绑定(bind)到 n 个核心,其中 GOMAXPROCS >= n。也就是说,每个 goroutine 总是被安排在同一个核心上。
最佳答案
分布在 CPU 内核之间。有关详细信息,请参阅此文章。
可以找到完整的详细信息here
关于go - 将 GoRoutine 绑定(bind)到 CPU 内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55824274/