РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
799 of 815 menu

Метод load

Метод load класса atomic читает текущее значение атомарной переменной и возвращает его. Операция является атомарной, то есть никакой другой поток не может изменить значение переменной в момент чтения. Первым параметром метод принимает порядок памяти (memory order), который определяет, какие ограничения на переупорядочивание операций накладываются. По умолчанию используется memory_order_seq_cst.

Синтаксис

atomic<T> obj; obj.load(order);

Пример

Давайте создадим атомарную переменную со значением 42 и прочитаем её с помощью метода load:

#include <iostream> #include <atomic> using namespace std; int main() { atomic<int> obj(42); int res = obj.load(); cout << res << endl; return 0; }

Результат выполнения кода:

42

Пример

Давайте явно укажем порядок памяти memory_order_relaxed при чтении значения:

#include <iostream> #include <atomic> using namespace std; int main() { atomic<int> obj(12345); int res = obj.load(memory_order_relaxed); cout << res << endl; return 0; }

Результат выполнения кода:

12345

Пример

Давайте прочитаем значение атомарной строки и выведем его на экран:

#include <iostream> #include <atomic> #include <string> using namespace std; int main() { atomic<string> obj("abcde"); string res = obj.load(); cout << res << endl; return 0; }

Результат выполнения кода:

"abcde"

Смотрите также

  • класс atomic,
    который представляет атомарную переменную
  • метод store,
    который записывает значение в атомарную переменную
  • метод exchange,
    который заменяет значение атомарной переменной
  • метод compare_exchange_strong,
    который сравнивает и обменивает значение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить