【发布时间】:2010-12-23 16:57:04
【问题描述】:
还是受操作系统控制?我听说 Google 的新 Go 语言有内置功能,可以让程序员做到如此精细,还是我理解错了?
【问题讨论】:
-
这可能是可能的,但您为什么要这样做?通常,操作系统可以比用户空间应用程序更好地决定在哪个 CPU 上执行代码。
-
@Zach 如果您可以很好地控制每个 CPU 的功能,某些算法确实会运行得更好。例如,如果一个线程被抢占,带有自己滚动自旋锁的算法会做得很差,所以最好在每个线程中绑定到一个特定的核心。或者我可以想象它与非常受 CPU 限制的东西相关。那就是说……你说得对,那是一种小众的东西。
-
@asveikau 当然,但是您运行的 CPU 不会影响您是否会被抢占。我能想到的一种情况是在 NUMA 架构中。但我怀疑用户空间程序能否做出比随机选择更有益的决定。
-
@Zach 想象两个线程被分配给同一个内核,即使另一个线程空闲运行也不是那么不合理。通过设置亲和力,您可以更明确地避免这种情况。
标签: linux