2

考虑我们有多个处理器/内核和两个线程的情况。是否可以强制 linux 调度程序在其执行的每个实例中始终将特定线程(两者)调度到特定处理器。是否在创建时为线程设置处理器亲和性,足以达到此目的

4

1 回答 1

3

如果您查看手册页,taskset您可以看到以下语句:

Linux 调度程序将遵循给定的 CPU 亲和性,并且该进程不会在任何其他 CPU 上运行。

这意味着为特定进程设置 CPU 亲和性将确保它始终在该 CPU 上运行。

存在允许您为特定线程设置线程亲和性的 API,我想 OS 调度程序也会尊重这一点。

如果你看一下,sched_setaffinity你会看到一行写着:

这些对进程将在其上运行的实际 CPU 集的限制是由内核静默施加的。

这意味着这将确保您的线程仅在此函数设置的 CPU 上运行。

于 2013-02-20T11:49:28.613 回答