2012-01-09 18 views
2

Javaスレッドに関する質問があります。 Javaでは、JVM上で実行している間に、スレッドは並列に実行できます実際に? JVMは各スレッドを別々にOSで表示しますか? (OSが同時に複数のコアで各スレッドを実行できるようにする)OSがすべてのスレッドをJVMのために1つと見なすため、実際にはインタリーブのみを実行するのか?私の質問ははっきりしていると思う。Javaスレッド実数

+2

はい可能です。どのようにJVMが実装されているのかが指定されていないので、答えは "それは依存する"です。しかし、通常Javaはマルチコアでうまくいき、スレッドは実際に並行して実行されます。 – alf

+0

可能な複製http://stackoverflow.com/questions/4427398/java-threads-vs-os-threads – dtech

答えて

2

私は、Javaのスレッドについて質問があります。 Javaでは、JVMの上で実行されている間に、スレッドは実際には並行して実行できますか?ダウンあなたが持っているOSやハードウェアにある

。しかし、マルチコアシステム上のほとんどのJVMはスレッドを同時に実行することができます。

んJVMショーのOS彼らは個別に各スレッド? (OSが各スレッドを複数のコアで同時に実行できるようにする)

ほとんどのJVMはOSスレッドを使用します。この場合、違いはありません。

OSはすべてのスレッドをJVMのために1つと見なすので、実際にはインタリーブのみを実行しますか?

実行する必要があるスレッドが複数ある場合(通常はほとんどのアプリケーションでそうです)、スレッドが1つだけ実行されます。実際、CPUの負荷が1つのCPUを下回るたびに、マシン全体で1つのスレッドしか静的に実行されません。

6

これはJVMの実装によって異なります。最近のJVMの実装では、JavaスレッドがOSに公開されています。

関連する問題