Compare And Swap (CAS) アトミック プリミティブに使用できる高レベル (インライン アセンブラではない C++) 関数またはマクロについて説明したいと思います...
たとえば、x86 の WIN32 には_InterlockedCompareExchange
、<_intrin.h>
ヘッダーに一連の関数があります。
Compare And Swap (CAS) アトミック プリミティブに使用できる高レベル (インライン アセンブラではない C++) 関数またはマクロについて説明したいと思います...
たとえば、x86 の WIN32 には_InterlockedCompareExchange
、<_intrin.h>
ヘッダーに一連の関数があります。
他の人にさまざまなプラットフォーム固有の API をリストしてもらいますが、C++09 での今後の参照用に、
atomic_compare_exchange()
新しい「アトミック操作ライブラリ」での操作。
LinuxおよびUnixシステムの一般的なシステムライブラリであるglib(ただし、WindowsおよびMac OS Xでもサポートされています)は、g_atomic_int_compare_and_exchangeやg_atomic_pointer_compare_and_exchangeなどのいくつかのアトミック操作を定義します。
GCCには、アトミックアクセス用の組み込みもいくつかあります。
C++標準ライブラリへの変更を提案するこの主題に関する一連のワーキンググループペーパーがあります。WG N2427(C ++ Atomic Types and Operations)は最新のものであり、保留中の標準のセクション29( Atomic Operations Library )に貢献しています。
MacOS X にはOSAtomic.hがあります
Solaris には "atomic.h" (つまり<sys/atomic.h> ) があります。