Pebble Coding

プログラマーの作業メモ

C++11 std::atomicを使いこなすための情報リスト

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

C++ Concurrency in Action: Practical Multithreading

ソースコードが豊富で助かりますが、難解です。 std::atomicやメモリモデルもしっかり解説してあります。

改訂新版 C++ポケットリファレンス

改訂新版 C++ポケットリファレンス

std::atomicについてはほとんど解説はありませんが、C++11の入門書として手元にあると便利かも。