Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

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やメモリモデルもしっかり解説してあります。

[改訂第3版]C++ポケットリファレンス (POCKET REFERENCE)

[改訂第3版]C++ポケットリファレンス (POCKET REFERENCE)

  • 作者: 高橋晶,安藤敏彦,一戸優介,楠田真矢,湯朝剛介
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/02/15
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

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