我想要一个只在cpu1上运行的测试程序,所以我这样写代码
#include <iostream>
#include <windows.h>
int main(){
::SetThreadAffinityMask(::GetCurrentProcess(),1);
while(1)
;
return 0;
}但是当我打开任务管理器时,我发现CPU1没有被充分使用,并且它的使用率始终是changing.Why?CPU1,应该是100 %的使用吗?对不起我的英语。
发布于 2013-09-25 07:48:09
SetThreadAffinityMask设置线程的亲和力,而不是整个进程的亲和力。如果检查返回值,就会发现SetThreadAffinityMask失败了。要获得当前线程,请使用GetCurrentThread()而不是GetCurrentProcess()。
即将代码更改为
SetThreadAffinityMask(GetCurrentThread(),1) 如果要设置整个流程的亲和力,请使用
SetProcessAffinityMask(GetCurrentProcess(),1)https://stackoverflow.com/questions/18998645
复制相似问题