【发布时间】:2011-01-23 13:34:33
【问题描述】:
是否有任何可能的方法来禁用 Windows 上的多核功能并仅使用 C\C++ 使用单核?任何允许它的图书馆? 我的应用程序访问我们用于与主机通信的芯片模块之一。我们怀疑其他人正在访问此模块并对其进行更改。奇怪的是,它只发生在多核系统(Windows 7 64 位)上,当您将 Windows 设置为仅使用单核 (How to disable a core) 时,一切正常。
在我看来,Windows 不应允许任何程序以编程方式完成它,但我希望我弄错了。
编辑:我不是在寻找重新提升我的线程技能的建议。我的问题可能更多与硬件或固件相关(也许第二个核心也在访问我的芯片模块)。
第二次编辑:这不是软件问题!我只想知道是否可以使用 C\C++ 禁用多核。我不寻求线程建议,因为我 100% 确定问题不存在。
第三次编辑:问题已解决。问题在于我的客户运行的另一个进程访问了我的应用程序正在访问的同一共享内存。 正如我之前提到的,我的线程没有问题,我从来没有得到我想要的答案:关于天气的简单是或否,可以使用 C++ 禁用其中一个内核。 处理器亲和性在我的特殊情况下没有帮助。
【问题讨论】:
-
听起来您的应用程序中可能存在与线程相关的错误,在单核上运行时根本不会表现出来(通常足够)。并不少见。
-
@CWAN:这不可能是线程相关的错误,因为只有一个线程访问我的芯片模块。
标签: c++ c window core multicore