После обсуждения, которое получило комментарии this question.Как написать спин-блокировку без использования CAS
Как можно было бы написать Spinlock без операций CAS?
В других штатах вопрос:
модель упорядочения памяти таким образом, что запись будет атомным (если два параллельных потоков написать ячейку памяти, в то же время, то результат будет один или другой). Платформа не будет поддерживать операции с атомарным сравнением и набором.
Похоже, для этого требуется одно объявление переменной в потоке? Вопрос был вдохновлен необходимыми тысячами нитей и неизвестным числом из них. Это означает, что это, вероятно, не является жизнеспособным решением :( – Martin
Истина. Кроме того, потоки должны знать, какой атомно записываемый флаг принадлежит им, что по сути является тем, что пытается определить исходный вопрос. Существуют ли системы, которые не обеспечивают потоки с идентичностью, такие как комбинация идентичности того, что создало поток, и сериал от этого создателя? –
Я собираюсь принять это, похоже, нет других способов сделать это. – Martin