不是平台独立的,但在Windows中,您可以使用SetProcessAffinityMask:
SetProcessAffinityMask(GetCurrentProcess(), 0x1); //Only CPU #1
Run Code Online (Sandbox Code Playgroud)
对于Linux有sched_setaffinity.例如,如果您希望它仅在CPU 1和3上运行:
cpu_set_t set;
CPU_ZERO(&set);
CPU_SET(1, &set);
CPU_SET(3, &set);
sched_setaffinity(pid, CPU_SETSIZE, &set);
Run Code Online (Sandbox Code Playgroud)
注意:sched_setaffinity并且sched_getaffinity是特定于Linux的(在其他POSIX系统上不存在).
在BSD上有cpuset_setaffinity类似的语义.我希望Solaris具有类似的功能.