我最近有机会听了另一个关于 JVM 的讨论。据说Java虚拟机在并发方面构建得很好。对于我认为是一个简单的问题,我找不到任何令人满意的答案:当 JVM 运行多线程(因此使用多个虚拟内核,对吗?)时,它是否使用了机器 CPU 的多个真实内核?
我听到“不总是”或“有时”作为答案;那么有什么方法可以确保当我们设计代码以运行多个线程时,JVM 也将使用 CPU 的多个内核?或者反过来说,是什么决定了 JVM 是否使用多个 CPU 内核?
我真的无法举例说明何时需要这样做,但我觉得这很有趣,因为我知道设计师喜欢在他们的项目中确定一切。如果实际上它们永远不会被并行计算,那么在某些大型应用程序中拥有多个线程的真正意义是什么?