Я недавно читал об Compare And Swap атомарном действии (CMPXCHG,.NET Interlocked.CompareExchange, о чем угодно ).
Я понимаю, как это работает внутри и как это используется клиентом.
Чего я не могу понять, так это того, когда кто-то будет использовать CAS?
Википедия говорит:
CAS используется для реализации примитивов синхронизации, таких как семафоры и мьютексы, а также более сложные блокировки -бесплатно и ждать -бесплатных алгоритмов.
Итак, кто-нибудь может дать мне более общий -вариант использования в реальном мире с кодом и описанием использования CAS?
Этот вопрос не зависит от языка -, поэтому подойдет любой язык (на основе C -или ассемблера x86 ).
Спасибо!