假设我们有多个处理器/核心和两个线程。是否可以强制linux调度器在每次执行时总是将特定的线程(两者)调度到特定的处理器。在创建时设置线程的处理器亲和性是否足以达到此目的
发布于 2013-02-20 19:49:29
如果您查看taskset
的手册页,您可以看到以下语句:
Linux调度器将遵循给定的
亲和性,并且该进程不会在任何其他CPU上运行。
这意味着为特定进程设置CPU亲和性将确保它始终在该CPU上运行。
有一些API可以让你为特定的线程设置线程亲和性,我想这也会被操作系统调度程序所接受。
如果你查看sched_setaffinity
,你会看到一行内容:
这些对进程将在其上运行的实际CPU集的限制是由内核悄悄施加的。
这意味着这将确保您的线程仅在此函数设置的CPU上运行。
https://stackoverflow.com/questions/14979031
复制相似问题