首页 > 解决方案 > 在多处理器系统中,每个处理器会有独立的 JVM 吗?

问题描述

假设我们有一个具有多个处理器的系统。这些处理器中的每一个都有自己的 JVM 吗?如果不是,那么另一个问题是在具有两个不同操作系统(例如 Windows 和 RedHat)分区的计算机中,我们必须在其中任何一个上运行 java 应用程序。JVM 对于两个平台都会有所不同,那么这将如何工作?

标签: javamultithreadingjvmmultiprocessing

解决方案


假设我们有一个具有多个处理器的系统。这些处理器中的每一个都有自己的 JVM 吗?

不,每个程序执行都会启动一个 JVM 实例,但是 JVM 可能(取决于实现)使用多个进程并且大多数肯定使用多个线程运行,这两者都能够利用多处理器设施系统。

如果不是,那么另一个问题是在具有两个不同操作系统(例如 Windows 和 RedHat)分区的计算机中,我们必须在其中任何一个上运行 java 应用程序。JVM 对于两个平台都会有所不同,那么这将如何工作?

您为每个操作系统安装一个单独的 JVM。同样,在每个操作系统中,每个程序执行都会启动一个 JVM 实例,上述情况再次适用。

Java 是“编译一次,随处运行”,因此只要 JVM 版本与您编译的版本兼容,无论您在哪个操作系统和相应的 JVM 上执行它,它都会完全一样地工作。

这是因为 Java 字节码与平台/操作系统无关(它由 JVM 解释),而 JVM 本身是平台/操作系统特定的。


推荐阅读