Понимание C++ std::atomic и сравнения и замены [дубликат] ⇐ C++
-
Гость
Понимание C++ std::atomic и сравнения и замены [дубликат]
Насколько я понимаю, операция сравнения и замены поддерживается аппаратно, например CMPXCHG в архитектуре x86. У меня есть следующие две путаницы:
[*]Означает ли, что атомарность C++ не «реализует» атомарность сама по себе, а скорее использует атомарные функции процессоров? [*]Но что, если в архитектуре нет функций сравнения и замены? Если компилятор на этой платформе хочет быть совместимым со стандартом C++, ему придется найти какие-то другие (вероятно, гораздо более затратные в вычислительном отношении) способы реализации std::atomic без использования подхода сравнения и замены?
Насколько я понимаю, операция сравнения и замены поддерживается аппаратно, например CMPXCHG в архитектуре x86. У меня есть следующие две путаницы:
[*]Означает ли, что атомарность C++ не «реализует» атомарность сама по себе, а скорее использует атомарные функции процессоров? [*]Но что, если в архитектуре нет функций сравнения и замены? Если компилятор на этой платформе хочет быть совместимым со стандартом C++, ему придется найти какие-то другие (вероятно, гораздо более затратные в вычислительном отношении) способы реализации std::atomic без использования подхода сравнения и замены?
Мобильная версия