blog

マルチコアCPUとマルチスレッドを理解する

プロセスはスレッドを含み、プロセスは複数のスレッドを含みます。 スレッドはCPUのスケジューリングと割り当ての基本単位であり、プロセスはオペレーティングシステムによるリソース割り当ての最小単位です。 ...

Jan 16, 2021 · 2 min. read

コンピュータCPUとマルチスレッド

プロセスとスレッド:

プロセスはスレッドを含み、プロセスは複数のスレッドを含みます。

スレッドは CPU のスケジューリングと割り当ての基本単位であり、プロセスはオペレーティングシステムによるリソース割り当ての最小単位です。

シングルコアCPU:

マルチプロセッシングの実装は、オペレーティングシステムのプロセススケジューリングアルゴリズムに依存しています。例えば、3つの実行中のプログラムがある場合、オペレーティングシステムは、シングルコアのCPUにこれらのプロセスを実行するために交代させます。

マルチスレッドとは、CPUリソースを最大限に活用することです。スレッドの切り替えに時間がかかるため、2つのスレッドを持つプロセスは、1つのスレッドを2回持つプロセスよりも実行に少し時間がかかるかもしれません。つまり、マルチスレッドの使用は、プログラムの速度を上げるのではなく、速度を低下させるかもしれませんが、ユーザーにとっては、ユーザーの応答時間を短縮することができます。

マルチコアCPU:

マルチコアCPUとは何ですか? マルチコアCPUは、複数の完全なコンピューティング・エンジンを組み込んだプロセッサです。

マルチコアCPUとシングルコアCPUは並列処理ではなく同時処理です。

しかし、マルチコアCPUは、各コアが独立してスレッドを実行することができますので、マルチコアCPUは本当にマルチスレッド並列処理を実現することができます。例えば、クアッドコアは、CPUのスケジューリングを待機するスレッド567がある場合、コア1234スレッド1234に割り当てることができます。スレッド1234は並列に属し、コア1がスレッド1の実行を停止してスレッド5を実行する場合、そのスレッド15は並列に属します。

JVMマルチスレッドとマルチコアCPU:

Javaはマルチスレッド機構を通じて、複数のタスクが同時に実行することができます処理、すべてのスレッドは、JVMのメモリ領域のメインメモリを共有し、各スレッドは、独自の独立した作業メモリを持って、スレッドがメモリ領域と相互作用するとき、メインメモリから作業メモリにコピーされたデータは、スレッドの処理に引き渡されます。

Java仮想マシンのマルチスレッドは、スレッドの回転切り替えとプロセッサの実行時間の割り当てによって実現されるため、プロセッサは任意の時点で、スレッド内の1つの命令しか実行しません。そのため、マルチコアCPUの場合、複数のスレッドが複数のコアにスケジューリングされます。

Read next

幸福感を高めるいくつかの方法

最近、233ソースは実は忙しい。3ヶ月以上続いたプロジェクトの開発・再構築で、毎日一緒に残業したことのないパートナーに引っ張られて1095~10105くらいの残業リズム。彼は最近、基本的に私たちの会社で最も頻繁に残業で2年以上であると述べました。 それは最終的に今週オンラインになる予定でしたが、問題のnetty非同期コールバック不適切な使用のため、それは別の2日間かかった...

Jan 15, 2021 · 1 min read