cmpxchg16bなどのアトミック(ダブル)比較およびスワップ命令を使用して、ロックフリーメカニズムを実装しています
私は現在、これをアセンブリで作成してからリンクしています。ただし、コンパイラにこれを自動的に実行させる方法があるかどうか疑問に思いましたか? たとえば、コード ブロックを 'atomically' で囲み、基礎となるプロセッサ アーキテクチャでコードをアトミック命令として実装する方法を理解させます (または、基礎となるアーキテクチャがサポートしていない場合はコンパイル時にエラーを生成します)。
PS gccにはいくつかの組み込み機能があることを知っています(少なくともCASの場合)
http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Atomic-Builtins.html#Atomic-Builtins