令和7年度秋期 応用情報技術者試験 午前 問17
スレッドセーフの説明として,適切なものはどれか。
- ア アプリケーションが複数のスレッドから呼び出されないようになっている。
- イ アプリケーションを複数のスレッドではなく,単一のスレッドで動作させる。
- ウ アプリケーションを複数のスレッドで並列に実行しても,問題が生じない。
- エ スレッドの競合が発生したときに,アプリケーションを安全に停止させる。
解答・解説を見る
正解:ウ
AI解説
スレッドセーフとは、あるプログラム(関数やコード)が複数のスレッドから同時に呼び出され並列に実行されても、共有データの競合などによる不具合が発生せず正しく動作する性質を指す。呼び出されないようにする制約ではなく、並列に呼ばれても安全であることが定義の核心である。 ア: 複数スレッドから呼び出されないようにする仕組みの説明であり、スレッドセーフ(呼ばれても安全)の定義とは逆の発想である。 イ: 単一スレッドでの動作に限定する説明であり、複数スレッドでの安全性を問うスレッドセーフの定義ではない。 ウ: 正しい。複数スレッドで並列実行しても問題が生じないことがスレッドセーフの定義である。 エ: 競合発生時に安全に停止させる仕組みの説明であり、そもそも競合による問題を生じさせないというスレッドセーフの趣旨と異なる。 💡 『スレッドセーフ=複数スレッドから同時に呼ばれても安全』と一言で覚える。対義語は『リエントラント(再入可能)でない』関数などが挙げられる。
出典:令和7年度 秋期 応用情報技術者試験 午前 問17 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。