この記事は,マルチスレッドのプログラムでしばしば見る,そして発見が困難であるバグ「データ競合」と,それを見つけるのによく使われる「happens-before 関係」について解説します。 筆者は特に x86-64 アーキテクチャにおけるバグ検出に興味がありますので,一般的な話というよりは x86-64 に寄せた話になります。 想定読者 データ競合バグの発生原理やアトミック変数を使ったバグの防止方法を知りたいと思っているプログラマ データ競合バグを検出する手法,特に happens-before 関係を勉強したいプログラム解析手法の研究者 x86-64 & C++ を例に説明しますが,その他のアーキテクチャや言語にも通じる話もたくさんあります。 記事の概要 データ競合,アトミック変数,逐次一貫性,happens-before 関係などの用語に興味がありますか? この記事はマルチスレッドで良く