考虑我们有多个处理器/核心和两个线程的情况。是否有可能强制linux调度程序始终在每个执行实例上将特定线程(两者)调度到特定处理器。在创建时为线程设置处理器亲和性,足以达到此目的
答案 0 :(得分:3)
如果查看taskset
的手册页,您可以看到以下声明:
Linux调度程序将遵循给定的CPU关联,并且该进程不会在任何其他CPU上运行。
这意味着为特定进程设置CPU关联性将确保它始终在该CPU上运行。
存在允许您为特定线程设置线程关联的API,我想这也将受到OS调度程序的尊重。
如果你看sched_setaffinity
,你会看到一行说:
内核默默地强制执行对进程运行的实际CPU集的限制。
这意味着这将确保您的线程仅在此函数设置的CPU上运行。