2017-02-23 23 views
2

我知道我们可以使用Java中的并行流或线程轻松使用所有可用的CPU内核。但是,假设我的桌面有两个物理 CPU(是的,我的意思是CPU不是内核),那么JVM就会同时使用它们(考虑到它们当然是可用的),就像它与CPU一样核心?多CPU编程

谢谢!

+0

请再次阅读我的问题,我正在谈论多CPU而不是多核。 – FelipeKunzler

+0

你在说什么JVM? – weston

+0

没有具体的,这是可能的,这取决于JVM? – FelipeKunzler

回答

4

JVM是只是一个规范是:

...省略实现细节是没有必要确保互操作性:运行时数据区的内存布局,使用的垃圾收集算法,以及Java虚拟机指令的任何内部优化(它们转换为机器代码)

这将是另一个实现细节,它是如何使用物理硬件的。我可以编写自己的JVM实现,只使用一个CPU,或者我可以编写一个使用多个CPU的JVM实现。除此之外,我会想象所有的商业JVM都以与多核心完全相同的方式来看待多个CPU,因为它们通常运行在操作系统之上,这些操作系统也抽象出有关CPU和核心(包括虚拟核心)的硬件细节,并将它们全部作为CPU呈现给在该OS之上运行的软件。