Подтвердить что ты не робот

Высокоуровневые функции сравнения и свопинга (CAS)?

Я хотел бы документировать, какие функции высокого уровня (например, С++ не встроенный ассемблер) или макросы доступны для атомных примитивов Compare And Swap (CAS)...

Например, WIN32 на x86 имеет семейство функций _InterlockedCompareExchange в заголовке <_intrin.h>.

4b9b3361

Ответ 1

Я позволю другим перечислить различные API-интерфейсы для платформы, но для будущей ссылки в С++ 09 вы получите

atomic_compare_exchange() 

в новой "Атомной библиотеке операций".

Ответ 2

glib, общая системная библиотека для Linux и Unix-систем (но также поддерживаемая в Windows и Mac OS X), определяет несколько атомных операций, включая g_atomic_int_compare_and_exchange и g_atomic_pointer_compare_and_exchange.

Ответ 6

Был опубликован ряд рабочих групп по этой теме, в которых предлагается внести изменения в стандартную библиотеку С++. WG N2427 (Атомные типы и операции С++) является самым последним, что вносит вклад в раздел 29 - Библиотека атомных операций - отложенного стандарта.

Ответ 7

java также выполняет эту операцию CAS

см. здесь

для этого существуют практические применения, такие как блокирующая хэш-таблица, используемая в многопроцессорной системе