Раймонд Чен делал огромный серию lockfree . Помимо простых случаев функций InterlockedXxx
, кажется, что преобладающий шаблон со всеми ними заключается в том, что они реализуют свои собственные блокировки. Конечно, не существует блокировок процессора, но концепция циклизации снова и снова на каждом процессоре для обеспечения согласованности очень похожа на спин-блокировку. И, будучи спин-блокировкой, они будут менее эффективными, чем обычные блокировки, которые поставляются с операционной системой, потому что они не дают контроля над их квантами, ожидая других потоков. Поэтому, когда кто-то приходит ко мне и говорит: "Но мой алгоритм заблокирован", мой общий ответ "так"?
Мне любопытно, существуют ли тесты, которые показывают, что алгоритмы блокировки не имеют границ над их полноэкранными блокировками?