Чем хороша функция «Сравнить и поменять местами»?

Я недавно читал об Compare And Swap атомарном действии (CMPXCHG,.NET Interlocked.CompareExchange, о чем угодно ).

Я понимаю, как это работает внутри и как это используется клиентом.

Чего я не могу понять, так это того, когда кто-то будет использовать CAS?

Википедия говорит:

CAS используется для реализации примитивов синхронизации, таких как семафоры и мьютексы, а также более сложные блокировки -бесплатно и ждать -бесплатных алгоритмов.

Итак, кто-нибудь может дать мне более общий -вариант использования в реальном мире с кодом и описанием использования CAS?

Этот вопрос не зависит от языка -, поэтому подойдет любой язык (на основе C -или ассемблера x86 ).

Спасибо!

14
задан usr 24 April 2012 в 20:04
поделиться