Java并发实践:
对于没有I / O且不访问共享数据的此类计算问题,Ncpu或Ncpu + 1个线程可产生最佳吞吐量;更多线程无济于事,并且实际上可能会因为线程竞争CPU和内存资源而降低性能。
我从未见过这个Ncpu + 1建议,它始终是Ncpu。为什么Ncpu + 1也是最佳选择?
答案 0 :(得分:1)
答案将在后面几章中给出:
即使是计算密集型线程,有时也会由于某些其他原因而导致页面错误或暂停,因此,“额外的”可运行线程可以防止CPU周期在这种情况下变得闲置。
无论如何,大约100页以后介绍一下概念并不是很好。