High-level-Vergleichen Und Swap (CAS) - Funktionen?
Möchte ich dokumentieren, was high-level (z.B. C++ nicht inline-assembler -) Funktionen oder Makros sind verfügbar für Compare Und Swap (CAS) Atomare primitive...
E. g., WIN32 auf x86 hat eine Familie von Funktionen _InterlockedCompareExchange
im <_intrin.h>
header.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich werde es anderen überlassen, Liste der verschiedenen Plattform-spezifische APIs, aber für zukünftige Referenz in C++09 erhalten Sie die
Betrieb in der neuen "Atomic operations-Bibliothek".
glib, ein gemeinsames system-Bibliothek auf Linux-und Unix-Systemen (aber auch auf unterstützten Windows-und Mac OS X), definiert mehrere Atomare Operationen, einschließlich g_atomic_int_compare_and_exchange und g_atomic_pointer_compare_and_exchange.
GCC hat einige built-ins für Atomare Zugriffe auch.
Unter Solaris gibt es "atomic.h" (d.h. <sys/atomic.h>).
MacOS X hat OSAtomic.h
Gab es eine Reihe von Arbeitsgruppe Veröffentlichungen zu diesem Thema schlägt änderungen am C++ - Standard-Bibliothek. WG N2427 (C++ - Atomare Datentypen und Operationen) ist der jüngste, der dazu beiträgt, Abschnitt 29 -- Atomare Operationen Bibliothek -- der anhängigen standard.
java hat dieses CAS-operation, zu
sehen hier
gibt es praktische Anwendungen für diese, wie ein lock-free Hash verwendet in Multiprozessor-system