パーツの選び方「CPU編5」スレッドついて解説
こんにちは。
以前、自動車のプログラムを開発してて。
メインの処理があって、それに対して割込みでプログラムが呼ばれるんですね。
普段メインの処理が実行されてるんですけど、
ドライバーが駐車場に車を止めるとき、
バックするためのレンジに切り替えるじゃないですか。
そのとき、バックの回路に切り替えるためのプログラムが割込みで処理される。
割込みの処理が終わるまでは、他のプログラムは待機状態で先に進めない。
これがシングルコア、コア1、スレッド1の状態。
朝起きて、布団を畳もうとしてるけど、
トイレも行きたくて、チャイムが鳴って宅配便も届いた。
どれから優先して処理するかは人それぞれだけど、一つずつしか処理できない。
だけど、トイレに行きながら「ちょっと待ってください」と返事することはできる。
布団畳んで片付ける押し入れがトイレ方向なら、
トイレに行きながら布団を押し入れに入れる。
CPUは一つしかないんだけど、トイレでCPUの能力を全部使いきるわけじゃないから、余剰で別の処理を行えるようにしているのがスレッド。
コア1、スレッド2の状態。
つまり物理的にはCPUは一つなんだけど、
処理能力は空いてるから仮想的にCPU2つの状態にして
2つのタスクを処理させることができる。
コアとスレッドの関係
2コア2スレッドだと、windowsとゲームとブラウザ立ち上げて
windowsとゲームの処理をしている場合、ブラウザは処理待ち状態。
2コア4スレッドだと、仮にwindowsの処理が大きくて、
1コア2スレッドを使用してても、
もう一つのコアのほうでゲームとブラウザを処理できる。
つまり、コアと同様に多ければ多いほど良いのではないでしょうか。
次回は、キャッシュについて解説します。

コメント
コメントを投稿