リエントラント性とスレッドセーフ設計とは?
リエントラント性とスレッドセーフ設計とは、再入可能(リエントラント)とは、実行中に別の呼出しが割り込んでも正しく動く性質。共有データを持たず、局所変数と引数だけで完結すれば満たしやすい。スレッドセーフは複数スレッドから同時に呼ばれても整合が保たれる性質で、共有状態を持つ場合は排他制御が必要になる。
りえんとらんとせいとすれっどせーふせっけい
リエントラント性とスレッドセーフ設計の意味
再入可能(リエントラント)とは、実行中に別の呼出しが割り込んでも正しく動く性質。共有データを持たず、局所変数と引数だけで完結すれば満たしやすい。スレッドセーフは複数スレッドから同時に呼ばれても整合が保たれる性質で、共有状態を持つ場合は排他制御が必要になる。
リエントラント性とスレッドセーフ設計の具体例
静的変数に途中結果を溜める関数は、2つのリクエストが同時に入ると値が混ざる。呼出しごとに状態を引数・戻り値で持ち回る、または不変オブジェクトにすれば、ロック無しで安全になる。ロックを増やすより状態を持たない設計に寄せるほうが性能も落ちにくい。
リエントラント性とスレッドセーフ設計は試験でどう引っ掛けられる?
再帰可能(リカーシブ)と再入可能の混同が頻出。再帰は自分自身を呼ぶ性質、再入は割り込まれても壊れない性質で、別物。また再配置可能(リロケータブル)とも紛らわしい。スレッドセーフでも再入可能とは限らない点にも注意。
リエントラント性とスレッドセーフ設計と関連する用語
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。