限制某个进程只能在某个CPU上运行

2014-11-23 22:13:34 ? 作者: ? 浏览: 5

首先可以调用GetSystemInfo查看有多少个CPU,再通过调用:

BOOL WINAPI SetProcessAffinityMask( 
  __in          HANDLE hProcess, 
  __in          DWORD_PTR dwProcessAffinityMask 
); 

BOOL WINAPI SetProcessAffinityMask(
  __in          HANDLE hProcess,
  __in          DWORD_PTR dwProcessAffinityMask
);

第一个参数是代表要设置的进程,第二个参数是一个掩码,代表可以在哪个CPU上运行。例如:设置5(101)代表在第一个和第三个CPU上运行。


还有其他几个相关的函数:

BOOL WINAPI GetProcessAffinityMask( 
  __in          HANDLE hProcess, 
  __out         PDWORD_PTR lpProcessAffinityMask, 
  __out         PDWORD_PTR lpSystemAffinityMask 
); 

BOOL WINAPI GetProcessAffinityMask(
  __in          HANDLE hProcess,
  __out         PDWORD_PTR lpProcessAffinityMask,
  __out         PDWORD_PTR lpSystemAffinityMask
);

DWORD_PTR WINAPI SetThreadAffinityMask( 
  __in          HANDLE hThread, 
  __in          DWORD_PTR dwThreadAffinityMask 
); 

DWORD_PTR WINAPI SetThreadAffinityMask(
  __in          HANDLE hThread,
  __in          DWORD_PTR dwThreadAffinityMask
);

 


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: