IT・プログラミング雑学

プロセスとスレッドの違いとは?仕組みや使い分け・タスクとの違いもプログラマーがスポーツに例えてわかりやすく解説

よぉ、桜木建二だ。パソコンを使っているとタスクやプロセス、スレッドって言葉を聞いたことがあるかもしれない。コンピューター以外でも同時に複数の作業をすることをマルチタスクと言うよな。でも、そのタスクやプロセス、スレッドというのはどう違うのか考えたことあるか。そもそもコンピューターのマルチタスクってのはどうやって実現しているんだろうか。プロセスやスレッドの違いやなぜ必要なのかをプログラマでもあるライターのwoinaryと一緒に解説していくぞ。

解説/桜木建二

「ドラゴン桜」主人公の桜木建二。物語内では落ちこぼれ高校・龍山高校を進学校に立て直した手腕を持つ。学生から社会人まで幅広く、学びのナビゲート役を務める。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

プロセスやスレッドはコンピューターの中の作業の単位

image by iStockphoto

普段、パソコンやスマホを利用しているときに、どれくらいのアプリを立ち上げていますか。さらにブラウザの中でいくつもタブを開きますよね。このようにコンピューターでは同時にいくつものアプリやタブを開くことができます。このひとつひとつのことをタスクと呼び、同時に多くのタスクを使うことがマルチタスクです。最近はコンピューターに限らず、1人でいくつもの作業をこなすこともマルチタスクと言いますよね。

このようなタスクも、さらに細かい単位に分けることができます。ざっくり言えば、タスクはプロセスの集まりで、プロセスはスレッドの集まりです。人間が何か作業をする時も、それをさらに細かく分けて考えるのと同じ。ここではコンピューターのプロセスとスレッドについて解説します。

プロセス:スポーツで言えばチームメンバー

まずはプロセスです。プロセスはスポーツで言えばひとつのチームのメンバー。野球なら9人、サッカーなら11人、控え選手も入れればもっと多くのメンバーが集まったものです。各メンバーはそれぞれ違う役割があります。しかし、チームは勝利に向かってメンバーが一丸となって勝利を目指しますよね。

コンピューターの中も同じです。アプリの中ではいくつかの役割分担があります。それがプロセス。中には個人競技のように1プロセスだけのものもありますが、多くのプロセスに分かれるものもあります。また、多くの人が利用するWebサービスなどは1つのプロセスが1人のユーザーの担当です。アプリの中ではチームのメンバーのように多くのプロセスが動いて、そのアプリの作業をこなします。

\次のページで「スレッド:スポーツで言えば各メンバーの役割」を解説!/

次のページを読む
1 2 3
Share: