<分区>
Possible Duplicate:
CPU Affinity
我在 Linux 上运行,我想编写一个 C++ 程序,它将设置 2 个特定的处理器,我的 2 个应用程序将并行运行(即设置每个进程在不同的核心/CPU 上运行)。我想在 C++ 中使用处理器关联工具。请任何人帮忙编写 C++ 代码。
<分区>
Possible Duplicate:
CPU Affinity
我在 Linux 上运行,我想编写一个 C++ 程序,它将设置 2 个特定的处理器,我的 2 个应用程序将并行运行(即设置每个进程在不同的核心/CPU 上运行)。我想在 C++ 中使用处理器关联工具。请任何人帮忙编写 C++ 代码。
最佳答案
您可以在命令行中使用 taskset(1) ,或者在您的代码中,您可以使用 sched_setaffinity(2) .
例如
#ifdef __linux__ // Linux only
#include <sched.h> // sched_setaffinity
#endif
int main(int argc, char *argv[])
{
#ifdef __linux__
int cpuAffinity = argc > 1 ? atoi(argv[1]) : -1;
if (cpuAffinity > -1)
{
cpu_set_t mask;
int status;
CPU_ZERO(&mask);
CPU_SET(cpuAffinity, &mask);
status = sched_setaffinity(0, sizeof(mask), &mask);
if (status != 0)
{
perror("sched_setaffinity");
}
}
#endif
// ... your program ...
}
关于c++ - 设置处理器与将在 Linux 上运行的 C++ 的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8486314/