最近、JVM に関する別のディスカッションを聞く機会がありました。Java Virtual Machine は、並行性の点でうまく構築されていると述べられています。JVM が複数のスレッドを実行する (したがって、複数の仮想コアを使用する) 場合、マシンの CPU の複数の実際のコアを使用しますか?
答えとして「いつもではない」または「時々」と聞きました。複数のスレッドを実行するようにコードを設計するときに、JVM が CPU の複数のコアも使用するようにする方法はありますか? あるいは、JVM が複数の CPU コアを使用するかどうかを決定するものは何ですか?
これが必要になる例を実際に示すことはできませんが、プロジェクトですべてを決定論的にすることを好む設計者を知っているので、興味深いと思います。また、実際に複数のスレッドが並列に計算されない場合、大規模なアプリケーションで複数のスレッドを使用する意味は何なのでしょうか?