スレッドセーフとは?
スレッドセーフとは、複数のタスクやスレッドから同時に呼ばれても内部データが破壊されず、期待どおりの結果を返す性質。共有する状態を持たないか、持つ場合は排他制御で保護して実現する。どこまでを保証するのかが問われる。
応用情報技術者試験の過去問では1回出題されています。
すれっどせーふ
スレッドセーフの意味
複数のタスクやスレッドから同時に呼ばれても内部データが破壊されず、期待どおりの結果を返す性質。共有する状態を持たないか、持つ場合は排他制御で保護して実現する。どこまでを保証するのかが問われる。
スレッドセーフの具体例
ヒープを共有する動的メモリ確保の関数は、内部にミューテックスを持たせてスレッドセーフにする。組込みでは非スレッドセーフ版を選んでオーバヘッドを削り、呼出し側でクリティカルセクションを組む選択もある。
スレッドセーフは試験でどう引っ掛けられる?
個々の関数がスレッドセーフでも、複数の呼出しにまたがる一連の処理は保護されない。読んでから書く2段階の操作は、あいだに割り込まれれば壊れるため、呼出し側でまとめて排他する必要がある。
スレッドセーフと関連する用語
スレッドセーフが出た過去問
スレッドセーフの説明として、適切なものはどれか。
正解:アプリケーションを複数のスレッドで並列に実行しても、問題が生じない。
要点:スレッドセーフは複数スレッドで同時実行しても不整合が起きないこと
スレッドセーフとは、あるコードを複数のスレッドから同時に実行しても、データ競合や不整合といった問題が起きないように設計されていることをいう。共有データへのアクセスを適切に排他制御したり、状態を持たない設計にしたりすることで実現する。
出典:令和7年度 秋期 応用情報技術者試験 午前 問17(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。