Как написать спинлок без использования CAS - PullRequest
0 голосов
/ 03 мая 2010

Исходя из обсуждения, которое началось в комментариях к этому вопросу .

Как можно было бы написать Spinlock без операций CAS?

Как говорится в другом вопросе:

Модель упорядочения памяти такова, что запись будет атомарной (если два одновременно работающих потока записывают ячейку памяти одновременно, результат будет один или другой). Платформа не будет поддерживать атомарные операции сравнения и задания.

1 Ответ

2 голосов
/ 03 мая 2010

В статье в Википедии о spinlock говорится, что вам придется использовать алгоритм, подобный Алгоритму Петерсона , который использует другой флаг, чтобы указать, какой процесс должен перейти в критическую секцию (если желательно).

...