JVM
Javaコードの実行についてこの質問があります。私の友人は2.4または2.5GHzのデュアルコアを持っていますが、私は2GHzのクアッドコアを持っています。今私の質問は、Javaはすべてのコアを使用するのか、それとも1つだけを使用するのかということです。私の友人は、Javaが1コアを使用していると思っていたので、彼のコアは私のコアよりもクロックレートが高いため、実行時間が長くなります。
質問する
6351 次
2 に答える
6
JVM自体は複数のスレッドを使用しますが、ほとんどの場合、複数のコアを使用します(OSスケジューラーのムードによって異なります)。
プログラムは、使用するように要求した数のスレッドを使用します。コードがシングルスレッドの場合、コードはシーケンシャルになり、マルチコアアーキテクチャのメリットはありません(ただし、シングルスレッドが複数のコアを使用する場合がありますが、同時には使用できないことに注意してください)。
于 2012-12-14T10:49:39.880 に答える
4
OSが利用可能なプロセッサにスレッドを分散する場合、Javaは複数のコアの恩恵を受けます。JVM自体は、スレッドを複数のコア間で均等にスケジュールするために特別なことは何もしません。
通常、Javaアプリケーションは、すべてのアクティブなスレッドを個別のコアでスケジュールしようとします。これには、ガベージコレクタスレッドが含まれます。
次のリンクを見てください:
于 2012-12-14T10:49:57.480 に答える