スレッドセーフ

読み:スレッドセーフ
外語:thread safe
品詞:形容動詞,名詞

マルチスレッド環境で、複数のスレッドから呼ばれても問題が生じない作りになっていること。

スレッドセーフでないと、複数のスレッドから同時に利用された場合にバッファ/オブジェクト等が破壊されるなどし、正常に動作できなくなる。

Cの標準関数でもスレッドセーフでないものは数多くあり、静的データへのポインタを返すものは、原則としてスレッドセーフではない。

スレッドセーフでないものとしては、C言語のstrtok()が有名。

時間関係の関数でも、asctime()、ctime()、gmtime()、localtime()などはスレッドセーフではない。UNIX標準のSUS v2以降では、代用としてasctime_r()、ctime_r()、gmtime_r()、localtime_r()が用意されており、ユーザが用意した構造体を引数に与えるようになっている。