您的位置:首页 > 编程语言 > PHP开发

用SetProcessAffinityMask为进程指定CPU

2007-10-30 19:21 459 查看
TheSetProcessAffinityMaskfunctionsetsaprocessoraffinitymaskforthethreadsofthespecifiedprocess.

BOOLSetProcessAffinityMask(
HANDLEhProcess,
DWORD_PTRdwProcessAffinityMask
);





//getsysteminfo


SYSTEM_INFOSystemInfo;


GetSystemInfo(&SystemInfo);




printf(""


"dwNumberOfProcessors=%u,dwActiveProcessorMask=%u,wProcessorLevel=%u,"


"wProcessorArchitecture=%u,dwPageSize=%u",


SystemInfo.dwNumberOfProcessors,SystemInfo.dwActiveProcessorMask,SystemInfo.wProcessorLevel,


SystemInfo.wProcessorArchitecture,SystemInfo.dwPageSize


);


if(SystemInfo.dwNumberOfProcessors<=1)return;




DWORDdwMask=0x0000;


DWORDdwtmp=0x0001;


intnProcessorNum=0;


for(inti=0;i<32;i++)




...{


if(SystemInfo.dwActiveProcessorMask&dwtmp)




...{


nProcessorNum++;


if(nProcessorNum<=2)




...{


//如果系统中有多个处理器,则选择第二个处理器


dwMask=dwtmp;


}


else




...{


break;


}


}




dwtmp*=2;




}//endoffor




//进程与指定cpu绑定


SetProcessAffinityMask(GetCurrentProcess(),dwMask);


//线程与指定cpu绑定


//SetThreadAffinityMask(GetCurrentThread(),dwMask);




return;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: