私がマルチスレッドに関して読んだ記事の多くは、1つのスレッドが実行されているときに、1つの使用可能な論理プロセッサ(またはコア)によって処理されます。 hyper-v論理プロセッサごとに2つのスレッドがあります。Java Visual VMの実際の実行スレッド
しかし、Java VisualVMのスレッドタブに「実行中」とマークされている21個のスレッド(ユーザー作成スレッド)があると、混乱してしまいます。 My Laptopには4つの論理プロセッサしかないためです。
私のプロセッサはハイパースレッディングテクノロジをサポートするIntel(R)Core(TM)i5-3210M CPU @ 2.50GHz 2.50GHzであり、一度に8つのスレッドしか処理できません。これが起こったことができますどのように
?
誤解がある場合は教えてください。
あなたは誤解しました。何百ものスレッドが存在する可能性があり、OSは各スレッドの作業を1つのコア上で数ナノ秒実行し、次のスレッドなどを実行するようスケジュールします。 – fredt
情報をお寄せいただきありがとうございます。この文脈で私はJava User Created Threadを意味しています。上記の何百ものスレッドと同じように認識できますか? –
はい。 「Java User Created Thread」は、Javaプロセスが実際に作成するときに、OSによって実際に作成され、スケジュールされます。 – fredt