データ競合とは
でーたきょうごう
複数のスレッドが同じ変数に同期なしで同時にアクセスし、少なくとも1つが書き込みである状態。結果が実行ごとに変わる。C言語やC++では未定義の動作になる。
この用語の分野: マルチコアと同期
でーたきょうごう
複数のスレッドが同じ変数に同期なしで同時にアクセスし、少なくとも1つが書き込みである状態。結果が実行ごとに変わる。C言語やC++では未定義の動作になる。
この用語の分野: マルチコアと同期
データ競合は、同じ場所への読み書きの順番が同期によって決められていないために、どの順番で実行されたかで結果が変わってしまう状態です。
データ競合(データレース)の説明として正しいものはどれか。これはデータ競合の典型例です。
上のコードを2つのスレッドで同時に実行すると、counterの最終的な値が200000より小さくなることがある。その理…フェッチ・アンド・アッドは、読み出し・加算・書き込みを1つの不可分な操作として行うので、counter++のデータ競合を命令1つで解決できます。
RISC-Vのamoadd.w命令やx86のlock xadd命令のような、フェッチ・アンド・アッド(fetch-an…クリティカルセクション RTOS(リアルタイムOS) 性能カウンタ アクワイア・リリース アトミック命令 ABA問題 LR/SC コンペア・アンド・スワップ 条件変数 ストアバッファ