メモリバリア
Release側は逆にメモリバリアの後に順序性が必要なメモリ操作を実行し、それまでの処理をすべて終了させてからその旨を示すメモリ操作を行う。いくつかのアーキテクチャでは主記憶とI/Oメモリの操作の組み合わせに合わせて何種類かのメモリバリア命令を提供する。メモリバリア命令が複数種類存在するアーキテクチャでは、それぞれの命令にかかるコストに大きな違いがある点が重要である。
順序性が問題になるメモリの内容が単一の整数値など1つのメモリ操作命令のみで操作できる場合、これとメモリバリアを組み合わせることによりロックプリミティブよりもさらに軽量な同期機構を実装することができる。参照カウントやメモリ上のフラグが典型例である他、スピンロックやミューテックスのような軽量ロックプリミティブにあってもロック変数の実装手段としてしばしば使用する。環境によってはメモリ操作命令とメモリバリアの組み合わせの需要が多いことから、これらをAPIとして整備していることがある。例えばLinuxカーネルではマクロとしてatomic_operation_visibility()が提供されており、operationにメモリ操作命令、visibilityに可視性を指定することによりこれらの組み合わせをC言語から簡単に利用できる。