排他制御とは?はいたせいぎょ
排他制御とは、同じデータへ複数の処理が同時に触れても矛盾が起きないよう、先に触れた側にロックを与え、他方を待たせるか失敗させる制御。読み取り同士なら同時に取れる共有ロックと、同時に1つしか取れない更新用の専有ロックがあり、在庫や座席のように「残り1つ」を奪い合う業務では欠かせない。
最終更新:2026-10-06
この語が出る過去問を解く →背景
処理を1件ずつ順番に流していた時代は競合そのものが起きなかったが、オンライン化で不特定多数が同時に同じ在庫や口座へ触れるようになると、二重に引き当てる・金額が消えるといった不整合が現実の損失になった。同時に処理する速さと、データの正しさを両立させる折衷案として導入されたのがロックである。ITストラテジストでは、在庫を全チャネルで一つに束ねる構想の実現性を判断するとき、この設計が性能要件との取引になることを知っておく必要がある。
具体例
ファーストリテイリングのように店舗在庫とEC在庫を一元化した事業では、複数のチャネルから同じ在庫を奪い合う。引き当ての一瞬だけロックを取り、決済や配送手配は外へ出す設計にしておかないと、繁忙期に待ちが伸びて注文を取りこぼす。
試験での引っ掛け
ロックをかければ安全、では終わらない。互いに相手の解放を待って双方が止まるデッドロックが起きうる。またロックの範囲を広く長く取るほど整合性は硬くなる一方で同時実行の性能は落ちるという逆向きの関係があり、安全側に倒した判断がそのまま性能要件の未達として跳ね返る。
関連用語
出た過去問
出典:令和7年度 春期 ITストラテジスト試験 午前Ⅱ 問23(IPA)
プログラムの排他制御の不備によって、プロセスやスレッドが共有リソースに同時アクセスした場合に想定外の動作をするという問題はどれか。
正解:レースコンディション
要点:レースコンディションは排他制御不備による競合状態
レースコンディション(競合状態)は、複数のプロセスやスレッドが共有資源に同時アクセスした際、処理の実行順序やタイミングによって結果が変わってしまう問題である。排他制御(ロックや不可分操作(途中で割り込まれない一体の処理))の不備が原因で、権限昇格などのセキュリティ上の脆弱性にもつながる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。