对于不执行I / O且不访问共享数据的计算问题,Ncpu + 1个线程会产生最佳吞吐量吗?

时间:2018-10-27 18:04:48

标签: multithreading concurrency cpu

Java并发实践:

  

对于没有I / O且不访问共享数据的此类计算问题,Ncpu或Ncpu + 1个线程可产生最佳吞吐量;更多线程无济于事,并且实际上可能会因为线程竞争CPU和内存资源而降低性能。

我从未见过这个Ncpu + 1建议,它始终是Ncpu。为什么Ncpu + 1也是最佳选择?

1 个答案:

答案 0 :(得分:1)

答案将在后面几章中给出:

  

即使是计算密集型线程,有时也会由于某些其他原因而导致页面错误或暂停,因此,“额外的”可运行线程可以防止CPU周期在这种情况下变得闲置。

无论如何,大约100页以后介绍一下概念并不是很好。