|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ ー : [ちょうおん] (n) long vowel mark (usually only used in katakana)
スレッドセーフ(Thread-safe)は、マルチスレッドプログラミングにおける概念である。あるコードがスレッドセーフであるという場合、そのコードを複数のスレッドが同時並行的に実行しても問題が発生しないことを意味する。特に、ある共有データへの複数のスレッドによるアクセスがあるとき、一度に1つのスレッドのみがその共有データにアクセスするようにして安全性を確保しなければならない。 スレッドセーフはマルチスレッドプログラミングにおける重要な要素である。それは従来、オペレーティングシステムの開発者だけが考慮しなければならない問題だったが、1990年代後半には一般的な問題となった。マルチスレッドプログラムでは、複数のスレッドが同じアドレス空間内で同時に実行される。各スレッドのアクセスするメモリ領域が特に制限されることはなく、全スレッドが全アドレス空間にアクセスできる。従って、プログラムを見たときに予測される制御の流れやデータアクセスの順序は実際に実行時に起きることとかけ離れたものとなることが多い。これは「驚き最小の原則」に反している。スレッドセーフは実際の処理の流れとプログラムのソースコードの関連性を強化し、予期しない動作を最小にすることを指向した特性である。 ==スレッドセーフかどうかの判断基準== あるコードの断片がスレッドセーフかどうかを判断するのは簡単ではない。しかし、以下のような点に注意して調べることで問題が見つかることが多い。 * 広域変数やヒープにアクセスしているかどうか * グローバルな制限のあるリソース(ファイル、プロセスなど)を確保・解放しているかどうか * 参照やポインタによる間接アクセスをしているかどうか * 明確な副作用があるかどうか(例えば、C言語で volatile 変数にアクセスするなど) スタック上の変数のみを使用し、引数にのみ依存し、同様な特性のサブルーチンしか呼ばないなら、そのサブルーチンはリエントラントであり、スレッドセーフである。このようなサブルーチンは「純関数; pure function」などと呼ばれることもあり、数学の関数によく似ている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「スレッドセーフ」の詳細全文を読む スポンサード リンク
|