是可以configurationWindows只使用一个单一的硬件线程。 过去几年的每台机器似乎至less是双核的,但是一些时序错误只有在线程串行执行时才是可重现的。 我对Windows Vista特别感兴趣。
大卫,我们先来解决你的直接问题:如何将Windows Vista限制为一个核心。
我看到两种方式:
(a)在Hyper-V上的虚拟机中运行Vista,并为该VM分配一个逻辑处理器。 这使你机器的其余部分得到很好的使用。
(b)或者,您可以使用boot.ini中的/ numproc = 1选项强制机器使用单个处理器。 你可以通过msconfig来configuration它。
替代文字http://i39.tinypic.com/141789i.png
但是,也许这足以将您的程序限制在单个内核中,那么设置处理器亲和力就是最佳select。 这可以通过configuration或直接从您的stream程代码来实现。
从这些你可能也想考虑先进的multithreadingdebugging工具,如英特尔的线程检查器,如果这适用于您的环境。
你正在寻找的是如何设置“过程关联”,以及如何设置它取决于你开始的程序,以及如何启动它。
我看到堆栈溢出这个答案: stackoverflow.com/questions/827754 / ….
还有许多机器可以在BIOS中禁用SMP(如果有相关的超线程)。
定时错误(或竞争条件的常见子集)似乎在多核机器上更普遍地可重现。
你会想在boot.ini中的/ onecpu开关看看这里: http : //support.microsoft.com/kb/170756