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

来源:互联网 发布:思科交换机做端口镜像 编辑:程序博客网 时间:2024/05/02 01:31

首先可以调用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);
0 0
原创粉丝点击