データ競合による未定義動作
同じメモリ位置へ複数スレッドが同期なしにアクセスし、少なくとも一方が書き込みであるときにC++規格が定める未定義動作。コンパイラは競合が存在しない前提で最適化する。
- 概念URI
https://comcomponent.com/knowledge/data-race-undefined-behavior/
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- 共有可変状態はデータ競合による未定義動作の原因になることがあります。C++ Core GuidelinesはCP.1(自分のコードがマルチスレッドで動くと想定せよ)とCP.2(データ競合を避けよ)を並行性の章の冒頭規則に掲げ、データ競合があるとどんな保証も成り立たないとしている。 / 確度: 確立した関係 / 確認日: 2026-08-02 出典
- volatileをデータ競合による未定義動作に用いることは推奨されません。volatileはスレッド同期の道具ではない。共有フラグ・カウンターにはstd::atomicを、複数変数の保護にはstd::mutexを使う。 / 確度: 確立した関係 / 確認日: 2026-08-02 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。