スレッドセーフ 【thread-safe】 thread safety

概要

スレッドセーフ(thread-safe)とは、マルチスレッド環境において、あるコンピュータプログラムを複数のスレッドで並行して実行しても、問題が生じない仕様や設計になっていること。

一つのプログラムが複数の命令の流れ(スレッド)を並行に実行できることをマルチスレッドというが、ある関数などが複数のスレッドから同時に実行されても矛盾や不具合が生じないようになっていることをスレッドセーフという。

例えば、共有メモリ領域の内容を書き換えるような処理を含む場合、あるスレッドから書き換え処理を行っている最中に別のスレッドからも書き換えが行われ、内容が破損したり失われることがある。このような複数スレッド間の競合が起き得る状態はスレッドセーフではない。

ローカル変数のみを利用する場合はスレッドセーフと言えるが、ファイルやデータベースなどへのアクセスを含む場合、静的変数やグローバル変数、ヒープ領域などを利用する場合、変数などの参照やポインタを使用する場合にはスレッドセーフ性を確保するための工夫が必要となる場合がある。

(2018.11.26更新)

プログラミングの用語一覧