タスク・プロセス・スレッドの違い
システム開発の現場でよく耳にする言葉である「タスク」「プロセス」「スレッド」、似たような意味の言葉なので、明確な定義や違いが分からないまま、使っている人も多いのではないでしょうか。
本記事では、「タスク」「プロセス」「スレッド」の違いについて紹介します。
簡易説明
- タスク:CPUが処理する仕事の単位
- プロセス:実行中のプログラム
- スレッド:プログラムの処理単位
タスクとは
タスクは「仕事」や「任務」などの意味を持つ言葉で、コンピュータの分野では、CPUが処理するプログラムの処理単位(仕事の単位)をあらわす言葉です。
例えば、パソコン上でアプリケーションのアイコンをクリックすると、クリックしたアプリケーションを開くように命令します。このような命令により発生する処理(CPUが処理する仕事)の単位をタスクといい、コンピュータの頭脳である「CPU」がタスクを処理します。
タスクには「シングルタスク」と「マルチタスク」があります。
一つのタスクに専念し、終了してから次のタスクを処理する方式を「シングルタスク」、複数のタスクを並行して処理する方式を「マルチタスク」といいます。
プロセスとは
プロセスは、物事の手順や方法、過程、経過などの意味を持つ言葉です。
ソフトウェアの分野では、オペレーティングシステム(OS)からメモリ領域などの割り当てを受けて処理を実行しているプログラム(実行中のプログラム)のことを「プロセス」といいます。
Windowsなどのオペレーティングシステム(OS)で動作しているプロセスはタスクマネージャーで確認できます。
スレッドとは
スレッドとは、CPUにおけるプログラムの実行単位のことで、プロセスはスレッドという実行単位に分割されて、CPUにより処理されます。
プロセスは実行中のプログラムであり、1つ以上のスレッドで構成されています。
1つのプロセスには、複数の処理が記述されており、これを1つのスレッドで順番に処理していく方式を「シングルスレッド」、複数のスレッドで並行して処理していく方式を「マルチスレッド」といいます。
まとめ
本記事では、「タスク」「プロセス」「スレッド」の違いについて紹介しました。
プロセスはExcelやWordなど1つ1つが独立して動作しているプログラム(実行中のプログラム)のことです。
スレッドはプロセスの中の処理単位で、1つのスレッドで処理する「シングルスレッド」と、複数のスレッドを並行して処理する「マルチスレッド」があります。
タスクは、CPUが処理するプログラムの処理単位(仕事の単位)という曖昧な表現のため、プロセスとほぼ同義の言葉として使われています。
まとめ
- タスク:CPUが処理する仕事の単位
- プロセス:実行中のプログラム
- スレッド:プログラムの処理単位