【问题标题】:How do threads of java compare to physical processor's threads? [duplicate]java的线程与物理处理器的线程相比如何? [复制]
【发布时间】:2020-01-26 08:42:13
【问题描述】:

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

【问题讨论】:

  • 查看此link,它已广泛回答了您的问题。
  • 不幸的是,硬件和软件工程师以不同的方式使用术语“线程”和“处理器”。从软件的角度来看,处理器线程是处理器。

标签: java multithreading processor


【解决方案1】:

据我了解,您所说的是 4 个实际核心2 Hyper-thread per core,这在技术上意味着 8 个虚拟核心 (vCpu)。这意味着 8 个线程 可以在没有任何上下文切换的情况下并行执行(这里不考虑超线程的复杂性)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-07
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    相关资源
    最近更新 更多