0

我使用 (HANDLE)_beginthreadex() 创建了一个 C++ Windows 控制台应用程序,其中使用 x 处理程序线程控制了 1000 个工作线程。

最初我认为 1000 个处理程序线程会导致最快的时间,但经过测试我发现使用 100 个处理程序线程会导致最快的时间。测试在四核英特尔 i7 处理器(支持超线程)上进行

我不确定要写什么,因为我的推理为什么线程数会导致最佳性能。由于我的处理器只能同时处理 8 个线程,我会认为 8 会是最好的性能。

我正在写一份关于应用程序的小报告,并且必须确定导致最佳性能的线程数并解释为什么会这样。

4

1 回答 1

3

理想情况下,您希望一次拥有 8个活动线程。8 通常不是理想的数字有很多原因,但可以肯定的是,您的线程中的工作不受 CPU 限制。如果在这种情况下线程太少,您会浪费时间,而太多线程当然会导致过度争用——并可能导致过多的上下文切换。

于 2013-04-23T20:20:35.240 回答