ソフトウェアスレッド、ハードウェアスレッド、およびJavaスレッドの違いは何ですか?
ソフトウェアスレッド、Javaスレッド、およびハードウェアスレッドは独立しているか、相互に依存していますか?これは、jvm(Java.exe)でJavaスレッドがプロセス内に作成されることを知っているためです。
また、これらの異なるプロセスが異なるハードウェアスレッドで実行されるのは本当ですか?
ソフトウェアスレッドは、オペレーティングシステムによって管理される実行のスレッドです。
ハードウェアスレッドは、一部のプロセッサの機能であり、特定の状況下でプロセッサをより有効に使用できるようにします。これらは、追加のコア(「ハイパースレッディング」)のように見えるため、オペレーティングシステムに公開される場合があります。
Javaでは、作成したスレッドはソフトウェアスレッドの抽象化を維持します。JVMは「オペレーティングシステム」です。 JVMがJavaスレッドをOSスレッドにマップするかどうかは、JVMのビジネスです(ただし、ほぼ確実にそうです)。そして、OSは、ハードウェアスレッドが使用可能であればそれを使用します。