私は C++11 のstd::memory_order
型 (リラックス、取得リリース、逐次一貫性など) の概念を十分に理解していますが、x86 で (コンパイラによって) 通常どのように実装されているかをよりよく理解したいと思っています (または x86_64) ターゲット。
memory_order_consume
具体的には、各順序制約 ( 、memory_order_acquire
、memory_order_release
、および)の低レベルの詳細 (プロセッサ間の状態またはキャッシュを同期するための重要なメモリ関連の CPU 命令など) の比較memory_order_seq_cst
。
できればx86_64または同様のアーキテクチャについて、できるだけ低レベルの詳細を提供してください。あなたの助けは非常に高く評価されます。