用于将线程分配给核心的API

时间:2009-08-06 10:01:34

标签: multithreading multicore

通常,操作系统负责将线程分配给核心。我想知道该计划是否有办法参与这项分配。

换句话说:是否有API(适用于Linux或Win32平台)能够创建与特定核心相关联的线程?

3 个答案:

答案 0 :(得分:3)

在Windows上,SetThreadAffinityMask。一般来说,不要这样做。操作系统几乎肯定比你更好。

答案 1 :(得分:2)

答案 2 :(得分:1)

请注意,Windows具有设置进程关联性的功能,但也可以独立设置每个线程。 Linux仅提供设置流程亲和力的工具。

对于Windows,进程函数是SetProcessAffinityMask。 Windows也有“理想”处理器(SetThreadIdealProcessor)的概念,如果你不知道自己在做什么,它会好得多(尽管这个概念在XP中不起作用)。