讨论:在双核CPU系统运行程序. ( 积分: 100 )

  • 主题发起人 主题发起人 鳄鱼王
  • 开始时间 开始时间

鳄鱼王

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样才能开发出把双核CPU资源占满?
以前做的整数运算程序运行时,都是只占50%(全速运行),2个核心只有一个工作,要2个核心同时工作,CPU使用率达100%,才能发挥优势.?
 
单线程同时只能占用一个处理器.位双核优化其实也就是写多线程程序.
线程资源的分配有两种方式,
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是处理器编号
 

Similar threads

后退
顶部