C++11 std::atomicは難解です。
しかし、パフォーマンスが出ない時に頼りになるツールでもあります。
情報はなかなか少ないので、適宜まとめておきます。
CPUの動作に関する説明
CPU とキャッシュのはなし - graphics.hatenablog.com
プログラミング :: 高速なプログラムを書く為に :: メモリ
C++11のstd::atomicに関する説明
次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳
C++ Memory Model
https://www.think-cell.com/en/career/talks/pdf/think-cell_talk_memorymodel.pdf
かなり丁寧な図による説明です。
これでmemory_order_seq_cstとmemory_order_relaxedについての理解が進みました。
動画もあるようです。
C++11を使ったマルチスレッドプログラミングに関する書籍
C++ Concurrency in Action: Practical Multithreading
- 作者: Anthony Williams
- 出版社/メーカー: Manning Publications
- 発売日: 2012/03/15
- メディア: ペーパーバック
- 購入: 1人 クリック: 5回
- この商品を含むブログ (5件) を見る
ソースコードが豊富で助かりますが、難解です。 std::atomicやメモリモデルもしっかり解説してあります。
[改訂第3版]C++ポケットリファレンス (POCKET REFERENCE)
- 作者: 高橋晶,安藤敏彦,一戸優介,楠田真矢,湯朝剛介
- 出版社/メーカー: 技術評論社
- 発売日: 2018/02/15
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
std::atomicについてはほとんど解説はありませんが、C++11/14の入門書として手元にあると便利かも。