标签: c++ windows multithreading hyperthreading
除了使用SetThreadAffinityMask()禁用一半内核以使超线程CPU完全服从线程优先级之外,还有什么方法吗?
AFAIK,CPU本身不知道优先级,因此在核心1上运行的低优先级线程将被赋予与在核心0上运行的高优先级线程大致相同的执行时间。换句话说,低优先级线程导致高优先级线程稍后完成其工作(可能很多)。
我的假设是核心0和1是两个逻辑CPU,位于同一个物理CPU上。
根据Hans的评论,这归结为Intel HT CPU是否支持硬件中的线程优先级。他们呢?