支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • 小話「スレッド」とはなにか

みなさんは日常生活において「スレッド」という言葉を聞く機会はありませんか。今回はその「スレッド」に関して解説していきましょう。

「スレッド」とは

スレッドの語源は「糸、繊維、脈絡」を意味する英語から来ているものです。実はスレッドには、総じて2通りの意味があります。一つはソフトウェアでの処理に対するものです。そしてもう一つがSNS等におけるものになります。ここではそれらを個別に解説していきましょう。

1.ソフトウェアとしての「スレッド」

ソフトウェアとしての「スレッド」の意味合いとしては、並列処理に対応したマイクロプロセッサ。いわゆるCPUやMPUとオペレーティングシステム(以下、OS)のプログラム最小実行単位のことを指します。 処理内容としては、連続して実行される一本の命令処理の流れで、並列処理を行わない場合は一つの実行プログラムは一つずつ命令を順に実行していきます。並列処理を可能とする環境の場合は、一つのプログラムがそれぞれ複数のスレッドを持つので、それぞれが独立してプログラム中の異なる処理を並行して実行する「マルチスレッド」で命令を実行できます。

なお、OS上で複数の異なるプログラムを並行して実行できることを「マルチタスク」、「マルチプロセス」等と呼んで区別しています。

ポイント:

シングルスレッドはプログラムの1つの流れで1づつ処理が行われる。対してマルチスレッドではプログラムの1つの流れで枝分かれしていて、そこで処理が並行して行われる。

2.SNS等の「スレッド」

インターネットの分野では、一つの話題に属する複数の発言、記事といった一つの流れとしてグループ化したものを「スレッド」と呼びます。SNSや電子掲示板、メーリングリストなどで複数のユーザーがいろいろな話題について発言をすると、規模が大きくなっていきます。これらをスレッド表示に対応させて管理することで、関連する一連の発言をひとかたまりのスレッドとして、スレッド毎に分けて表示、スレッドを指定して書き込めるようになっています。

これによって、ユーザー毎に個々の発言がどの流れかすぐに判別することができ、関心のある話題を抽出して閲覧することができます。また、発言時も自分の書き込みがどの発言や話題に対する応答かを明示することができ、コミュニケーションを円滑に進めることができます。

ネット上においてよく耳にしやすい「スレッド」は恐らくこちらが主でしょう。

ポイント:

SNS等では発言、記事を一つの流れとしてグループ化したもののことを指す。

ソフトウェアに関する「スレッド」を深堀してみる

上記において、ソフトウェアに関する「スレッド」について触れ、その中で「シングルスレッド」と「マルチスレッド」について解説した。

さあここで問題である。「シングルスレッド」よりも「マルチスレッド」を採用することによって処理を効率化し、パフォーマンスを向上させることができるのか。これにはまず「スレッド」以外に「プロセス」を知らなければならない。「プロセス」というのは「スレッド」の命令処理の流れで、「プロセス」を実行するにあたってまずメモリが割り当てられる。このメモリは各「プロセス」間では共有が行われず、「プロセス」内の「スレッド」で割り当てられたメモリを共有し、CPUで処理が行われる。そしてこのCPUは一度に一つしか処理を実行することができない。ただしマルチCPUが使用されている場合は別で、こちらでは「スレッド」を並列処理することが可能だ。

そして「マルチスレッド」には実は重大な落とし穴があったりする。それはCPUがマルチCPUでなくても動作出来てしまうという点だ。動作としては、CPUが「マルチスレッド」を処理する際に、処理を切り替えながら動作することで見かけ上、「並列に処理しているように見せてしまう」のである。この場合、一つのCPUで並列化された処理を行うので処理を終えるのに時間が掛かってしまい、処理中に問題が発生すれば、最悪デッドロックを起こしてアプリケーションが停止したり、データ整合性に問題が発生してしまう危険性がある。 「マルチスレッド」は処理を並列化してパフォーマンスを向上させることが目的になっているが使用するハードウェアによってはパフォーマンスを悪化させてしまうことに繋がるので注意が必要だ。

SNSに関する「スレッド」を深堀してみる

SNSにおいて「スレッド」はよく聞く機会が多く、実際多くのSNSには、メールを含めスレッドが存在する。メールでは、同じ件名に対して返信を繰り返し行うことによってそれらが「スレッド」のように表示される。これは件名毎に分類して表示される「スレッド表示」といい、同じ話題の内容を見やすくするための仕組みだ。

そして代表例ともいえるのが掲示板における「スレッド」だ。こちらはネット掲示板「5ちゃんねる(旧2ちゃんねる)」に起因したもので、掲示板内に投稿することによって「スレッド」が生成される(俗にスレを立てると言われる)。

おわりに

「スレッド」には複数の意味合いがあることが分かったと思うが、言葉としての意味としては共通しており、それぞれが表現として適切である。意味としては共通した言葉はこれら以外にも存在するので、調べてみると面白いと思う。