我使用(HANDLE)_beginthreadex()创建了一个C ++ Windows控制台应用程序,其中使用x处理程序线程控制了1000个工作线程。
最初我认为1000个处理程序线程会导致最快的时间,但在测试之后我发现使用100个处理程序线程会导致最快的时间。 测试是在四核intel i7处理器上进行的(支持超线程)
我不知道该为什么写这个为什么线程数导致最佳性能的原因。由于我的处理器只能同时处理8个线程,我认为8个是最好的性能。
我正在编写一份关于应用程序的小报告,并且必须确定导致最佳性能的线程数,并解释为什么会出现这种情况。
答案 0 :(得分:3)
您希望理想情况下一次拥有8个活动线程。一般来说8可能不是理想数字的原因有很多,但是你的线程中的工作不受CPU限制是一个很好的选择。如果在这种情况下线程太少,那么你就会浪费时间,而当然会有太多线程引起过度争用 - 并且可能导致过多的上下文切换。