是否有任何可能的方法来禁用 Windows 上的多核功能并仅使用使用 C\C++ 的单核?任何允许它的库? 我的应用程序访问我们用于与主机通信的芯片模块之一。我们怀疑其他人正在访问此模块并对其进行更改。奇怪的是,它只发生在多核系统(Windows 7 64 位)上,当您将 Windows 设置为仅使用单核(How to disable a core)时,一切正常。
在我看来,Windows 不应允许任何程序以编程方式完成它,但我希望我弄错了。
编辑:我不是在寻找重新分级我的线程技能的建议。我的问题可能与更多的硬件或固件相关(也许第二个内核也在访问我的芯片模块)。
第二次编辑:这不是软件问题!我只想知道是否可以使用 C\C++ 禁用多核。我不会寻求线程建议,因为我 100% 确定问题不在于此。
第三次编辑:问题已解决。问题出在我的客户运行的另一个进程,该进程访问我的应用程序正在访问的相同共享内存。 正如我之前提到的,我的线程没有问题,而且我从未得到我想要的答案:关于天气的简单是或否,可以使用 C++ 禁用其中一个内核。 处理器亲和性对我的特殊情况没有帮助。
最佳答案
我认为一些解决方法可以是为一个核心设置任务的主线程的亲和性,而不是为其他核心创建具有无限循环的线程并将它们设置为尽可能高的优先级。但如果不能在多核硬件上运行,通常是软件出了问题。
关于c++ - 以编程方式禁用多核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2377503/