【发布时间】:2010-07-07 01:39:03
【问题描述】:
我的电脑是双核 core2Duo。我已经在我的应用程序的慢速区域实现了多线程,但我仍然注意到 CPU 使用率从未超过 50%,并且在多次迭代后仍然滞后。这是正常的吗?我希望它能让我的 CPU 达到 100%,因为我将它分成 4 个线程。为什么还可以限制在 50%?
谢谢
见What am I doing wrong? (multithreading)
对于我的实现,除了我修复了该代码存在的问题
【问题讨论】:
-
你是如何“实现多线程”的?您如何确定这部分是您应用程序的瓶颈?
-
可能有些明显,但该进程是否甚至有权使用超过 1 个核心? (签入任务管理器)
-
是的,这是允许的,基本上我将工作分成 4 份并在多个线程上运行我的算法,我确定了它,因为删除它会使事情变得更快
-
拥有多个执行线程并不一定会让您的应用程序更快。例如,在false sharing 场景中,添加多个线程会导致性能急剧下降。
-
老兄,您需要提供更多信息。所有这些问题暂时符合条件的是“你真的 100%确定它是Core 2 Duo!!???”
标签: c++ c windows multithreading