Ubuntu 12.04 で配布されている OpenJDK 6 JVM でマルチスレッド Java プログラムを実行すると、すべてのスレッドが単一のコアでスケジュールされます。しかし、Oracle の最新の 1.7 JDK から JVM でまったく同じプログラムを実行すると、24 の使用可能なコアすべてで 20 のスレッドが適切にローテーションされます。OpenJDKのドキュメントでは、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)
オラクルの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)