java的线程与物理处理器的线程相比如何? [重复]

问题描述 投票:0回答:1

例如,我有4个核心处理器和8个线程。我很确定,线程数量与Java线程数量没有直接关系。

java multithreading processor
1个回答
3
投票

根据我的理解,您正在谈论4个实际内核每个内核2个超线程从技术上来说,它的意思是8个虚拟内核(vCpu)。这意味着8个线程可以在没有任何上下文切换的情况下并行执行(让我们在这里不考虑超线程的复杂性)

Java线程是一对一映射,而OS线程NOT硬件线程一对一映射。这意味着对于thread allocationcontext switch,Java取决于运行OS的基础JVM。 OS可以创建所需数量的线程,这些线程可以在处理器上的任何可用vCPUs上运行。随着OS线程的不断增加,如果线程NOT执行IO bound工作,将会有更多的上下文切换并且性能可能会受到影响。

© www.soinside.com 2019 - 2024. All rights reserved.