在另一个核心上创建线程? (WinAPI的)

时间:2010-05-22 22:16:07

标签: c++ c winapi

我想知道是否有办法在单独的核心上运行线程而不仅仅是该核心上的线程? 感谢

1 个答案:

答案 0 :(得分:4)

如果您创建了一个线程,则默认情况下无法控制它将运行的核心。操作系统的调度算法负责这一点,并且非常擅长于它的工作。但是,您可以使用SetThreadAffinity WinAPI指定允许线程运行的逻辑核心。

除非你有充分的理由,否则不要这样做。引用MSDN:

  

为进程或线程设置关联掩码可能导致线程接收较少的处理器时间,因为系统被限制在某些处理器上运行线程。在大多数情况下,最好让系统选择一个可用的处理器。