我知道我们可以使用 Java 中的并行流或线程轻松利用所有可用的 CPU 内核。
但是,假设我的桌面有两个物理CPU(是的,我的意思是 CPU 不是内核),JVM 会同时使用它们(当然考虑到它们可用),就像使用 CPU 内核一样?
谢谢!
该JVM是只是一个规范是:
...省略了对于确保互操作性不是必需的实现细节:运行时数据区域的内存布局、使用的垃圾收集算法以及 Java 虚拟机指令的任何内部优化(它们转换为机器代码)
它是如何使用物理硬件的另一个实现细节。我可以编写自己的 JVM 实现,只使用一个 CPU 就好了,或者我可以编写一个使用多个 CPU 的实现。
撇开学究不谈,我认为所有商业 JVM 都以与多核完全相同的方式看待多个 CPU,因为它们通常运行在操作系统之上,操作系统也会抽象出有关 CPU 和内核(包括虚拟内核)的硬件细节并将它们全部呈现出来作为在该操作系统之上运行的软件的 CPU。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句