誰かがそれに光を当てることができますか?
i7 プロセッサは 8 つのスレッドを実行できますが、JAVA または C++ プログラムで 8 つ以上のスレッドを作成できると確信しています (確かではありません)。私は i5 プロセッサを使用しており、並行性を研究しているときに、割り当て用に 10 個のスレッドを作成しました。CPUのコア評価がスレッドにどのように関連しているかを理解しようとしています。
誰かがそれに光を当てることができますか?
i7 プロセッサは 8 つのスレッドを実行できますが、JAVA または C++ プログラムで 8 つ以上のスレッドを作成できると確信しています (確かではありません)。私は i5 プロセッサを使用しており、並行性を研究しているときに、割り当て用に 10 個のスレッドを作成しました。CPUのコア評価がスレッドにどのように関連しているかを理解しようとしています。
「スレッド」は、プログラムを介した単一の自己一貫性のある実行パスを定義するソフトウェアの抽象化です。ほとんどの最新のシステムでは、スレッドの数は基本的にメモリによってのみ制限されます。ただし、 CPUが同時に実行できるスレッドは比較的少数です。大まかに言えば、「コア数」とは、CPU が実際に並行して実行できるスレッドの数です。使用可能なコア数よりも実行したいスレッドが多い場合、オペレーティング システムは何らかのタイム スライスを使用して、すべてのスレッドを実行できるようにします。スレッドの実行には時間がかかります。
「コア」に関しては、さまざまな用語が飛び交っています。
また、GPU、グラフィックス カードには膨大な数のコアがあり、膨大な数 (数千) のスレッドを並行して実行することも簡単に述べておく必要があります。トレードオフは、GPU コアのメモリが非常に少なく、多くの場合、プログラミング モデルが大幅に制限されることです。
いいえ、いいえ、いいえ... I7 には 8 つの実行スレッドがあり、一度に 8 つのスレッドを実行できます。
1000 以上のスレッドがプロセッサー時間を待機している可能性があります。
thread.sleep を呼び出すと、スレッドが実行コアから離れてメモリに戻り、起動されるまで待機します。
スレッドは、OS のスケジューラによって処理されます。CPU のコア数によって、同時に実行できるスレッド数が決まります。
スレッドは、すべてが同時に実行されているという「錯覚」を与えるために、スケジューラによって常に切り替えられることに注意してください。
興味のある方はこちらをご覧ください。