競合状態(race condition)
複数のスレッドがどの順序で特定のコードに到達するかによって結果が変わってしまう不具合。
この概念が関わる関係
- 共有可変状態は競合状態(race condition)の原因になることがあります。
- Interlocked関数は競合状態(race condition)を防ぎます。
- volatileを競合状態(race condition)に用いることは推奨されません。
- 共有可変状態は競合状態(race condition)の原因になることがあります。
- std::shared_mutexは競合状態(race condition)を防ぎます。
- std::atomicは競合状態(race condition)を防ぎます。
- 共有可変状態は競合状態(race condition)の原因になることがあります。
- Interlockedは競合状態(race condition)を防ぎます。
- ReaderWriterLockSlimは競合状態(race condition)を防ぎます。
- 共有可変状態は競合状態(race condition)の原因になることがあります。
- volatileを競合状態(race condition)に用いることは推奨されません。
- Atomic系クラス(AtomicInteger / LongAdder)は競合状態(race condition)を防ぎます。
- ConcurrentHashMap.computeIfAbsentは競合状態(race condition)を防ぎます。
- 述語のwhileループ再確認は競合状態(race condition)を防ぎます。
- スプリアスウェイクアップは競合状態(race condition)の原因になることがあります。
この概念を扱う記事
- マルチスレッドの実務ベストプラクティス C言語編 ── Win32 APIの流儀で安全に書く(主要トピック)
- マルチスレッドの実務ベストプラクティス C++編 ── RAIIとjthreadで事故を構造から消す(言及)
- マルチスレッドの実務ベストプラクティス .NET編 ── スレッドを増やす前に決めておくこと(主要トピック)
- マルチスレッドの実務ベストプラクティス Java編 ── 仮想スレッド時代の定石(言及)
- スプリアスウェイクアップ ── 条件変数が「通知なしに目覚める」理由とWindowsでの正しい待ち方(言及)
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。