13

Compare And Swap (CAS) アトミック プリミティブに使用できる高レベル (インライン アセンブラではない C++) 関数またはマクロについて説明したいと思います...

たとえば、x86 の WIN32 には_InterlockedCompareExchange<_intrin.h>ヘッダーに一連の関数があります。

4

7 に答える 7

17

他の人にさまざまなプラットフォーム固有の API をリストしてもらいますが、C++09 での今後の参照用に、

atomic_compare_exchange() 

新しい「アトミック操作ライブラリ」での操作。

于 2008-09-30T05:21:44.917 に答える
9

LinuxおよびUnixシステムの一般的なシステムライブラリであるglib(ただし、WindowsおよびMac OS Xでもサポートされています)は、g_atomic_int_compare_and_exchangeg_atomic_pointer_compare_and_exchangeなどのいくつかのアトミック操作を定義します。

于 2008-09-30T08:18:32.043 に答える
6

GCCには、アトミックアクセス用の組み込みもいくつかあります。

于 2008-09-30T06:24:32.080 に答える
2

C++標準ライブラリへの変更を提案するこの主題に関する一連のワーキンググループペーパーがあります。WG N2427C ++ Atomic Types and Operations)は最新のものであり、保留中の標準のセクション29( Atomic Operations Library )に貢献しています。

于 2009-11-07T23:15:08.023 に答える
2

MacOS X にはOSAtomic.hがあります

于 2008-09-30T06:01:03.323 に答える
2

Solaris には "atomic.h" (つまり<sys/atomic.h> ) があります。

于 2008-09-30T05:29:33.070 に答える
1

javaにもこのCAS操作があります

ここを参照してください

マルチプロセッサシステムで使用されるロックフリーハッシュテーブルのように、これには実用的な用途があります

于 2008-09-30T06:35:30.637 に答える