今回は「スレッド」についてです。
1.初めに
わからない用語を調べた際、用語の説明をするために他の用語が出現してくるので結局何を意味するのかわからなくなったという経験はありませんか?
私は結構あります。
特に、業界特有の用語なんてその業界の方は知ってて当たり前のように使用してくるので、全く解読できなかったりします。
残念ながら、本ブログに関しても同じことが言えます。
人それぞれどこまで理解しているかは当然異なってきますので、万人が理解できる記事を書くというのは不可能なのです。
超初心者に合わせて毎回基礎中の基礎から説明してたら本題に入れませんからね。
その対策として、本ブログでは記事中に登場する一部の用語(※よくある青字下線表示をしてある)をクリックすると、別途その用語についてまとめた記事へ移動させるような形式を取っています。
そのまとめ記事の一部が本記事となります。
その為、まとめてある内容は基本中の基本で、『おそらくこんな意味なんだろうな』と理解してもらうのを目的としています。
わかりやすくがモットーです。
なので、難しい言い回しは極力避けますし、形式ばった書き方だと拒否反応が起きる方もいそうなので言葉遣いもゆるゆるにしていきます。
用語の一覧は本ブログトップの「用語集」というボタンから閲覧できるので、他にも気になる用語があったらそこを覗いてみてください。
2.スレッドとは?
スレッドとは、英語で[thread]と書きます。
意味は[糸・筋道]です。
IT用語としては、コンピュータがプログラムを実行する流れのことを指します。
プログラムを順番に実行することでソフトウェアを立ち上げたりできるわけですが、この一連の流れがスレッドです。
中でも、流れが一直線なものをシングルスレッド、複数の流れが同時進行するものをマルチスレッドと呼びます。
例えば、適当に肉野菜炒めを作るとします。
その時の手順が以下のようになっていたとします。
「野菜を切る」→「肉を炒める」→「野菜も炒める」→「完成」
これがシングルスレッドです。
「野菜を切るプログラムを実行」→「肉を炒めるプログラムを実行」→「野菜を炒めるプログラムを実行」という具合に、プログラムを一つずつ順番に実行することで調理手順(道筋)を一本化した処理だからシングルスレッドです。
ただ、この手順、野菜を切っている間に肉を炒めた方が効率的だと思いませんか?
なので、手順を以下のように変更しました。
「野菜を切る」→「野菜も炒める」→「完成」
「肉を炒める」→
こうすると、調理手順が途中で分かれますよね?
これがマルチスレッドです。
マルチスレッドの場合、この分かれたそれぞれの道がスレッドに当たるので、この例の場合は二つのスレッドが動いているわけです。
プログラムが実行されている状態、その実行単位のことをプロセスと呼びます。
その為、「肉野菜炒めを作る」というプロセスは例に挙げたようなシングルスレッドやマルチスレッドで構成されています。
なので、スレッドの集まり=プロセスになります。
スレッドとプロセスの意味は混同されやすいので、ここでしっかり違いを抑えておきましょう。
また、ある共通の話題について複数の意見・発言が集まった”スレ”と呼ばれるものが存在しますよね?
2chとかなんJとか。
あれも(IT分野とはちょっと違うけど)スレッドです。
話題ごとの”流れ”を一つずつ分けて管理しているからスレッドと呼ぶわけです。
どちらにせよスレッドが意味するのは一連の流れのことなんです。
3.まとめ
スレッドとは、コンピュータがプログラムを実行する流れのことです。
以上、「スレッド」についてでした。