C++ 将进程运行在指定的CPU上

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w2014qian/article/details/51941549
方法:  SetProcessAffinityMask(HANDLE,DWORD);
其中,第一个参数为进程句柄。
如果要知道当前线程的句柄,可以通过函数:GetCurrentThread()得到。否则,在创建多线程的时候,也同样可以得到创建的线程的句柄。

第二个参数为mask,可取值为0~2^31(32位)和0~2^63(64位),每一位代表每一个CPU是否使用。
比如,你要指定进程到第0个CPU上,则mask=0×01
第1个CPU:mask=0×02
第2个CPU:mask=0×04 (注意不是0×03)
第3个CPU:mask=0×08
以此类推。

如果要指定多个CPU:
比如第0、1个:mask=0×03
第1、2个:mask=0×06
以此类推。

如果CPU个数不足,则会进行取模操作。比如一共4个CPU,则mask=0×0010则和0×01一样。

猜你喜欢

转载自blog.csdn.net/w2014qian/article/details/51941549
今日推荐