在c ++中线程化控制台应用程序

时间:2013-04-23 20:14:42

标签: c++ multithreading

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

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

我不知道该为什么写这个为什么线程数导致最佳性能的原因。由于我的处理器只能同时处理8个线程,我认为8个是最好的性能。

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

1 个答案:

答案 0 :(得分:3)

您希望理想情况下一次拥有8个活动线程。一般来说8可能不是理想数字的原因有很多,但是你的线程中的工作不受CPU限制是一个很好的选择。如果在这种情况下线程太少,那么你就会浪费时间,而当然会有太多线程引起过度争用 - 并且可能导致过多的上下文切换。