c++, c++11, функции-члены std::atomic

Я пытаюсь использовать библиотеку std::atomic.

  1. В чем разница между специализированным и неспециализированным атомным функции-члены?
  2. В чем разница (если она есть) между следующими функциями?
  3. operator= сохраняет значение в атомарном объекте (открытая функция-член) по сравнению с store (C++11) атомарно заменяет значение атомарного объекта неатомарным аргументом (открытая функция-член)
  4. оператор T() загружает значение из атомарного объекта ( публичная функция-член) против load (C++11) атомарно получает значение атомарного объекта (открытая функция-член).
  5. оператор+= vs. fetch_add
  6. оператор-= по сравнению с fetch_sub
  7. operator&= vs. fetch_and
  8. оператор|= vs. fetch_or
  9. operator^= vs. fetch_xor
  10. Каковы недостатки объявления переменной как атомарной по сравнению с а неатомарная переменная. Например, в чем недостаток std::atomic x по сравнению с целое х? Другими словами, каковы накладные расходы атомарной переменной?
  11. У какой из них больше накладных расходов? Атомарная переменная, по сравнению с нормальный переменная, защищенная мьютексом?

Вот ссылка на мои вопросы. http://en.cppreference.com/w/cpp/atomic/atomic

10
задан Bo Persson 4 March 2012 в 09:13
поделиться