しらいとブログ

ネットで検索してもなかなか出てこないIT情報を独自にまとめています

C++11のmemory_orderの使い分け (4)

前回まででアトミック変数とフェンスの memory_order の基本的な使い方を全て解説しました。今回はメモリバリアを減らして高速化する手法について解説します。ただし、consume を使った高速化に関しては扱いません。また、今回の内容はあくまでメモリバリア…

C++11のmemory_orderの使い分け (3)

2014/10/29 20:40 誤解を招きそうな部分があったので修正しました。修正場所は脚注から辿れます。 前回はアトミック変数に memory_order を指定した場合について解説しました。今回はフェンスで指定した場合について解説します。

C++11のmemory_orderの使い分け (2)

2014/10/23 12:20 一部用語を修正しました。*1*2 前回はメモリバリアで保証できる範囲について説明しました。今回はメモリバリアの使い方を説明します。 *1:read-modify-write アルゴリズム → read-modify-write 命令 *2:読み込み → 読み取り

C++11のmemory_orderの使い分け (1)

C++11で高速な同期手法としてアトミック変数やメモリフェンス(普通はメモリバリアと呼ぶ)が追加されました。 これらの命令では memory_order を指定できるのですが、違いが分かりづらいのでまとめてみました。 なお、正確な名前はmemory_order_relaxed、me…