OpenJDK JVM不会在多个核心上调度线程

时间:2013-09-28 22:04:29

标签: multithreading jvm multicore openjdk

当我在随Ubuntu 12.04一起分发的OpenJDK 6 JVM上运行我的多线程Java程序时,所有线程都安排在一个核心上。但是当我从Oracle最新的1.7 JDK在JVM上运行完全相同的程序时,它很好地围绕所有24个可用内核旋转了我的20个线程。 OpenJDK documentation解释了Java线程将被分配给本机线程,但它似乎不起作用。我的OpenJDK安装中是否存在配置错误,或者它是否真的不支持多核硬件?

OpenJDK的:

java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

Oracle JDK:

java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

1 个答案:

答案 0 :(得分:-2)

openjdk和oracles jdk之间应该没有区别,这些高级功能不会像这样影响线程。 Oracles JVM是基于它支持和增强的OpenJdk构建的,就像Redhat使用(现在)Wildfly版本增强Jboss一样。