web-dev-qa-db-ja.com

ソフトウェアスレッドとハードウェアスレッド

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

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

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

51
Bhadri

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

ハードウェアスレッドは、一部のプロセッサの機能であり、特定の状況下でプロセッサをより有効に使用できるようにします。これらは、追加のコア(「ハイパースレッディング」)のように見えるため、オペレーティングシステムに公開される場合があります。

Javaでは、作成したスレッドはソフトウェアスレッドの抽象化を維持します。JVMは「オペレーティングシステム」です。 JVMがJavaスレッドをOSスレッドにマップするかどうかは、JVMのビジネスです(ただし、ほぼ確実にそうです)。そして、OSは、ハードウェアスレッドが使用可能であればそれを使用します。

51
Will