ミューテックスとセマフォとは?みゅーてっくすとせまふぉ
ミューテックスとセマフォとは、共有資源に同時に触れる実行主体の数を制御する同期機構で、ミューテックスは所有者が一人だけの相互排除、セマフォは残り個数をカウンタで持ちP操作とV操作で増減させて同時実行数の上限を決める。獲得と解放でどこまでの範囲を囲むか、つまり排他の粒度が正しさと並列度の折り合いを決める。
最終更新:2026-10-06
システムアーキテクトを最短で暗記・合格する →背景
処理を順番に流していた時代は排他そのものが不要だった。マルチコアと非同期入出力によって同じデータへ複数の実行主体が同時に触れるようになり、正しさと並列度をどこで折り合わせるかが設計課題になった。性能要件を満たすために排他区間をどこまで縮められるか、どの単位で資源を数えるかという判断が、方式設計の中で直接効いてくる。
具体例
同時接続を五本に制限したいデータベース接続プールでは初期値5のセマフォを置き、六番目のタスクは誰かが返却するまで待つ。HikariCPのような接続プール実装がこの形にあたる。所有者が自分で解放する前提のミューテックスと違い、待たせる相手と解放する相手が別でよい点がセマフォを選ぶ理由になる。
試験での引っ掛け
P操作で減算、V操作で加算という向きが定番の混同点になる。初期値1のセマフォはミューテックスに似た振る舞いをするが、所有者の概念が無いため誤って別スレッドが解放できてしまう。同期機構を使えばデッドロックが防げるわけではなく、獲得順序を全体で統一しない限り普通に起きる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。