スレッド
プログラムの処理の実行単位だよ
あるいは、掲示板におけるトピックス毎のまとまりだよ
簡単に書くよ
スレッド(英:thread)とは
プログラムの処理の実行単位(のひとつ)。
あるいは
2ちゃんねるみたいな形式の掲示板における、それぞれのトピックスのこと
です。
詳しく書くよ
サクっと一言で説明すると
タスクやプロセスより細かい処理の実行単位
が「スレッド」です。
何を言ってるのか、さっぱり分かりませんね。
例えば、カレー作成プログラムを作るとします。
やるべき処理は
1.ご飯を炊く
2.カレーを煮込む
3.お皿に盛る
の3つです。
他にも、らっきょうを買ってくるとかお水を用意するとかいろいろあるでしょうが、一先ず気にしないでください。
この3つの処理をやるプログラムを作ります。
一番単純な作りのプログラムは、3つの処理を続けて書いたプログラムです。
処理が開始したら、ご飯を炊いて、カレーを煮込んで、お皿に盛ります。これで完了です。
このプログラムを、仮に「プログラム1」としましょう。
でも、ご飯を炊くのと、カレーを煮込むのは並行して行えますよね?
ということは、処理が開始したら、ご飯を炊くと同時にカレーを煮込んで、両方終わったらお皿に盛る、でもカレーは出来あがります。
こちらのプログラムは「プログラム2」としましょう。
プログラム1もプログラム2も立派なカレー作成プログラムです。
どちらを動かしても美味しいカレーが出来上がります。
それでは、実際にカレー作成プログラムを動かしてみましょう。
カレー作成プログラムは1つのタスクです。
動かすと、プロセスが1つ立ち上がります。
カレー作成プログラムが処理を開始しました。
プログラム1の方では「ご飯を炊く」処理が動きます。
プログラム2の方では「ご飯を炊く」処理と「カレーを煮込む」処理が動きます。
このとき動いている、それぞれの処理(の単位)が「スレッド」です。
プログラム1では1つのタスク、1つのプロセス、1つのスレッドが動いています。
プログラム2では1つのタスク、1つのプロセス、2つのスレッドが動いています。
イメージしづらければ、処理開始から処理終了までの流れを線で引いて、その線一本一本がスレッドだと思っても かまいません。
プログラム1は、処理開始から処理終了まで1本の線です。
プログラム2は、途中で一時的に二本に枝分かれしています。
このそれぞれの線がスレッドです。
余談ですが、プログラム1のように流れが1つの処理は「シングルスレッド」と呼ばれます。
プログラム2のように流れが複数に枝分かれして並行処理が発生している処理は「マルチスレッド」です。
併せて覚えてあげてください。
これが、プログラムにおけるスレッドです。
あとは、掲示板なんかでも「スレッド」という表現が出てくる場合があります。
こちらの「スレッド」は
話題、トピックスごとのまとまり
です。
2ちゃんねるのような形式の掲示板では、1つの話題ごとに1つのエリアが用意され、そのエリア内で返信を付ける形で、あーだこーだとコミュニケーションを取ります。
その話題ごとのまとまりをスレッドと言います。
一言でまとめるよ
まぁ「スレッド」って単語が出てきたら「プログラムの処理の実行単位、もしくは、掲示板におけるトピックス毎のまとまりなんだな~」と お考えください。
おまけ
■訳してみるよ
「thread(スレッド)」の意味は
・より糸
・筋道
・脈絡
とかです。






