线程数与处理器核心数?

时间:2017-05-24 03:45:53

标签: java apache-spark

根据当前的理解,理想情况下,为了获得最佳性能,我们不应该在处理器中创建超过核心数量的线程,因为会有线程切换等开销。但是这段视频Apache Spark Video说,在91分钟,我们应该超额预订线程,即创建更多线程而不是核心,以获得更好的性能。

只有Advantage我可以想到创建额外的线程所有任务将以循环方式获得cpu周期而不是有限的线程完成第一组任务然后选择另一组。

我不确定哪一个是正确的?

1 个答案:

答案 0 :(得分:3)

在理想的世界中,线程有连续的稳定工作流,每个核心有一个线程可能是个好主意。

在现实世界中,有很多时候线程必须等待。他们等待资源可用,或者让用户做一些富有成效的事情。当他们等待时,核心处于空闲状态,无所事事。为什么不通过切换到另一个线程并完成它来填补这个时间?

相关问题