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