鳄 鳄鱼王 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-27 #1 怎样才能开发出把双核CPU资源占满? 以前做的整数运算程序运行时,都是只占50%(全速运行),2个核心只有一个工作,要2个核心同时工作,CPU使用率达100%,才能发挥优势.?
W wr960204 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-28 #3 单线程同时只能占用一个处理器.位双核优化其实也就是写多线程程序. 线程资源的分配有两种方式, 1.任其自然,让操作系统自己去选择 2.自己指定. //获得CPU的总数 Function GetProcessCount():Cardinal; begin asm mov eax,1 cpuid mov Result, EBX end; Result := (Result shr 16) and $FF; end; 然后调用SetThreadAffinityMask这个API指定线程工作在哪个处理器上.参数1是线程句柄,参数2是处理器编号
单线程同时只能占用一个处理器.位双核优化其实也就是写多线程程序. 线程资源的分配有两种方式, 1.任其自然,让操作系统自己去选择 2.自己指定. //获得CPU的总数 Function GetProcessCount():Cardinal; begin asm mov eax,1 cpuid mov Result, EBX end; Result := (Result shr 16) and $FF; end; 然后调用SetThreadAffinityMask这个API指定线程工作在哪个处理器上.参数1是线程句柄,参数2是处理器编号