我有关于JVM
运行我的 Java 代码的问题。我的朋友有一个 2.4 或 2.5GHz 双核,而我有一个 2GHz 四核。现在我的问题是:Java 是使用所有内核还是只使用一个内核?我的朋友认为 Java 使用 1 个内核,因此他的运行时间会更好,因为他的内核的时钟频率比我的高。
问问题
6351 次
2 回答
6
JVM 本身使用多个线程,这些线程很可能会使用多个内核(取决于 OS 调度程序的心情)。
您的程序使用的线程数与您要求它使用的线程数一样多。如果您的代码是单线程的,它将是顺序的,并且不会从您的多核架构中受益(但是请注意,您的单线程可能使用多个内核,但不能同时使用)。
于 2012-12-14T10:49:39.880 回答
4
如果操作系统在可用处理器上分配线程,Java 将从多核中受益。JVM 本身并没有做任何特别的事情来让它的线程在多个内核上均匀调度。
通常,Java 应用程序会尝试将每个活动线程调度到单独的内核上。这包括垃圾收集器线程。
看看以下链接:
于 2012-12-14T10:49:57.480 回答