スレッドとは?
すれっど
スレッドとは、OSがプロセス内部でCPUに割り当てる実行の最小単位で、1つのプロセスが複数のスレッドを持つことで並行処理を実現します。
スレッド(Thread)とは、オペレーティングシステム(OS)がCPUのスケジューリングを行う際の最小実行単位です。プロセスが独立したメモリ空間を持つ「作業の箱」だとすれば、スレッドはその箱の中で動く「作業員」に相当します。1つのプロセスは複数のスレッドを持つことができ、これらは同じメモリ空間を共有しながら並行して動作します。
スレッドの主な特徴と仕組みは以下の通りです。
- 軽量性:プロセスの生成より少ないリソースで作成・切り替えができる
- メモリ共有:同一プロセス内のスレッドはヒープ領域やグローバル変数を共有する
- 独立したスタック:各スレッドは独自のスタック(関数呼び出しの履歴)とプログラムカウンタを持つ
- コンテキストスイッチ:OSがスレッドを切り替えて擬似的に同時実行を実現する
スレッドには大きく分けて2種類あります。OSが管理する「カーネルスレッド」と、言語ランタイムが管理する「グリーンスレッド(ユーザースレッド)」です。Go言語のゴルーチンやKotlinのコルーチンはグリーンスレッドの一種で、OSスレッドより軽量に多数生成できます。
マルチスレッドプログラミングでは、複数のスレッドが同じデータに同時アクセスする「競合状態(レースコンディション)」や「デッドロック」を防ぐために、ミューテックスやセマフォなどの同期機構が用いられます。CPU・メモリを効率よく使うためにマルチスレッドは現代のソフトウェアに不可欠な概念です。
使い方・例文
Webサーバーでは、リクエストごとに新しいスレッドを割り当てることで、複数のユーザーからの接続を同時に処理します。動画編集アプリでは、再生・エンコード・UIの操作をそれぞれ別スレッドで並行して実行しています。
この用語をシェア
最終更新: