Deadlock
デッドロックとは、複数のスレッドが互いに保持するロックを待ち合い、永久にブロックされた状態になることである。
目的
デッドロックが発生する条件とその防御策を理解する。並行プログラムの信頼性における中心的な関心事である。
メカニズム
コーフマンの 4 条件:相互排他、保持と待機、非横取り、循環待ち。すべて同時に成立するとデッドロックが起きる。防御策:ロックの順序付け(グローバルな順序)、タイムアウト、try-lock、ネストしたロックの回避。
ユースケース
- 並行処理プログラムの信頼性
- ロック設計
- デッドロック検出