1. ホーム
  2. multithreading

[解決済み] ソフトウェアスレッドとハードウェアスレッドの比較

2023-04-15 10:41:05

質問

ソフトウェアスレッド、ハードウェアスレッド、Javaスレッドの違いは何ですか?

ソフトウェアスレッド、Javaスレッド、およびハードウェアスレッドは、独立していますか、それとも相互に依存していますか? 私は、Java スレッドが jvm (java.exe) 内のプロセス内で作成されることを知っているので、これを尋ねています。

また、これらの異なるプロセスは、異なるハードウェアスレッド上で実行されるというのは本当ですか?

どのように解決するのですか?

ソフトウェアスレッドは、オペレーティングシステムによって管理される実行のスレッドです。

ハードウェアスレッドは、いくつかのプロセッサの機能であり、ある状況下でプロセッサをよりよく利用できるようにします。 追加のコアとしてオペレーティング システムに表示されることもあります ("ハイパースレッディング)。

Javaでは、あなたが作成したスレッドは、JVMが"オペレーティングシステム"である、ソフトウェアスレッド抽象化を維持します。 その後、JVM が Java スレッドを OS スレッドにマッピングするかどうかは、JVM の仕事です (ただし、ほぼ間違いなくマッピングします)。 そして、OSは、もし利用可能であれば、ハードウェアスレッドを使用することになります。