多核处理关系设置API 本帖最后由 zsl_oo7 于 2009-12-24 11:08:00 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 内核中有的,但是API就不清楚了。 SetThreadAffinityMask 通过调用SetThreadAffinityMask,就能为各个线程设置亲缘性屏蔽: DWORD_PTR SetThreadAffinityMask ( HANDLE hThread, // handle to thread DWORD_PTR dwThreadAffinityMask // thread affinity mask ); 该函数中的 hThread 参数用于指明要限制哪个线程, dwThreadAffinityMask用于指明该线程 能够在哪个CPU上运行。dwThreadAffinityMask必须是进程的亲缘性屏蔽的相应子集。返回值 是线程的前一个亲缘性屏蔽。例如,可能有一个包含4个线程的进程,它们在拥有4个CPU的计算机上运行。如果这些线程中的一个线程正在执行非常重要的操作,而你想增加某个CPU始终可供它使用的可能性,为此你对其他3个线程进行了限制,使它们不能在CPU 0上运行,而只能在CPU 1、2和3上运行。因此,若要将3个线程限制到CPU 1、2和3上去运行,可以这样操作: //线程0只能在cpu 0上运行 SetThreadAffinityMask(hThread0,0x00000001); //线程1,2,3只能在cpu 1,2,3上运行 SetThreadAffinityMask(hThread1,0x0000000E); SetThreadAffinityMask(hThread2,0x0000000E); SetThreadAffinityMask(hThread3,0x0000000E); 注意点: 1. 不要看中文的翻译,你贴的这个解释简直乱七八糟 2. mask的每个位都对应一个cpu,所以最低位代表cpu0,次低位代表cpu1,对于双核,自然是需要只关心最低两位 3. 这个mask只能是GetProcessAffinityMask 返回值的一个子集,不能任意设置 4. 这个方法只能降低你线程被执行的机会,因此绝大多数情况下都不要用 SetProcessAffinityMask设置进程亲缘性,让进程在制定的CPU核心上运行上面的是线程的 cairo 360软件还能用吗?用什么代替比较好? 请问MFC的程序接收参数 如何在给对话框菜单中的选项打上选定小勾(checked) 我认为z坐标正方向是向屏幕外的.and you? VC中编辑器的代码 SQL 小问题!!! 文件读写问题 各位帮帮忙,如何才能得到这个值呢 第一次和第二次快捷键的响应时间怎么是500ms 背景贴图的一个问题~~ 关于导出类DLL问题,在线等待。。。
DWORD_PTR SetThreadAffinityMask (
HANDLE hThread, // handle to thread
DWORD_PTR dwThreadAffinityMask // thread affinity mask
);
该函数中的 hThread 参数用于指明要限制哪个线程, dwThreadAffinityMask用于指明该线程
能够在哪个CPU上运行。dwThreadAffinityMask必须是进程的亲缘性屏蔽的相应子集。返回值
是线程的前一个亲缘性屏蔽。例如,可能有一个包含4个线程的进程,它们在拥有4个CPU的计算机上运行。如果这些线程中的一个线程正在执行非常重要的操作,而你想增加某个CPU始终可供它使用的可能性,为此你对其他3个线程进行了限制,使它们不能在CPU 0上运行,而只能在CPU 1、2和3上运行。因此,若要将3个线程限制到CPU 1、2和3上去运行,可以这样操作: //线程0只能在cpu 0上运行
SetThreadAffinityMask(hThread0,0x00000001);
//线程1,2,3只能在cpu 1,2,3上运行
SetThreadAffinityMask(hThread1,0x0000000E);
SetThreadAffinityMask(hThread2,0x0000000E);
SetThreadAffinityMask(hThread3,0x0000000E); 注意点:
1. 不要看中文的翻译,你贴的这个解释简直乱七八糟
2. mask的每个位都对应一个cpu,所以最低位代表cpu0,次低位代表cpu1,对于双核,自然是需要只关心最低两位
3. 这个mask只能是GetProcessAffinityMask 返回值的一个子集,不能任意设置
4. 这个方法只能降低你线程被执行的机会,因此绝大多数情况下都不要用