【きょうごうじょうたい】
競合状態(レースコンディション) とは?
💡 「早い者勝ち」で結果が変わるバグ
📌 このページのポイント
具体的にどういう問題が起きるの?
カウンターを+1する操作を考えよう。①現在値を読む(100)→②+1する(101)→③書き戻す(101)。2つのスレッドが同時にやると、両方が①で100を読む→両方が101を書き戻す→結果は101(102であるべき)。1回分の加算が消失する「ロストアップデート」問題だよ
Webアプリでも起きるの?
どうやって防ぐの?
レースコンディションのデバッグのコツは?
まとめ:ざっくりこれだけ覚えればOK!
「競合状態」って出てきたら「同時アクセスで実行順序により結果が変わるバグ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Race Condition」 = 競合状態
💬 Race(競争)。どのスレッドが先にゴールするかで結果が変わる「競争」だよ