6

我有关于JVM运行我的 Java 代码的问题。我的朋友有一个 2.4 或 2.5GHz 双核,而我有一个 2GHz 四核。现在我的问题是:Java 是使用所有内核还是只使用一个内核?我的朋友认为 Java 使用 1 个内核,因此他的运行时间会更好,因为他的内核的时钟频率比我的高。

4

2 回答 2

6

JVM 本身使用多个线程,这些线程很可能会使用多个内核(取决于 OS 调度程序的心情)。

您的程序使用的线程数与您要求它使用的线程数一样多。如果您的代码是单线程的,它将是顺序的,并且不会从您的多核架构中受益(但是请注意,您的单线程可能使用多个内核,但不能同时使用)。

于 2012-12-14T10:49:39.880 回答
4

如果操作系统在可用处理器上分配线程,Java 将从多核中受益。JVM 本身并没有做任何特别的事情来让它的线程在多个内核上均匀调度。

通常,Java 应用程序会尝试将每个活动线程调度到单独的内核上。这包括垃圾收集器线程。

看看以下链接:

  1. java - 如何使用多核
于 2012-12-14T10:49:57.480 回答