スレッドとは?
スレッドとは、撚り糸、筋、脈絡などの意味を持つ英単語のことである。ITの分野では、コンピュータが連続して実行する命令の列など、一筋の連続した流れになっているものを比喩的に表している。
スレッドのあれこれ!
○平行処理のスレッド
ソフトウェアの分野では、並行処理に対応したマイクロプロセッサ(CPU/MPU)、およびオペレーティングシステム(OS)におけるプログラムの最小の実行単位をスレッドという。
連続して実行される一本の命令の並び、処理の流れのことである。並行処理を行わない場合は一つの実行プログラム(プロセス)は一つのスレッド(シングルスレッド)で命令を順に実行していく。
並行処理が可能な環境では一つのプログラムが複数のスレッドを持つことができ、それぞれが独立にプログラム中の異なる箇所を並行して実行していくことが可能である。このような実行方式を「マルチスレッド」(multithreading)という。
○SNSなどのスレッド表示
インターネットの分野では、一つの話題に属する複数の発言や記事を一つの流れとしてグループ化したものをスレッドと呼ぶことがある。隠語的に「スレ」と略して呼ぶこともある。
SNS(ソーシャルネットワークサービス)や電子掲示板(BBS)、メーリングリストなどで、様々な利用者が様々な話題について発言する場合、規模が大きくなってくると誰が誰に返答しているのか、どの話題についての発言なのかが分かりにくくなるという点がある。
○マルチスレッド(multi-thread)
マルチスレッドとは、一つのコンピュータプログラムを実行する際に、複数の処理の流れを並行して進めることである。また、そのような複数の処理の流れを指す場合もある。
マルチスレッド機能を用いると、プログラムの実行時に必要に応じて複数の処理の流れを生み出し、異なる処理を並行して進めることが可能となる。スレッドはプロセスのようにOS上で独立した処理単位ではなく、メモリなどの資源を共有して動作することが多くなる。
スレッドの管理をプログラム内部のコードによって行なうものをユーザースレッド(user thread)、OSカーネルが行なうものをカーネルスレッド(kernel thread)という。