Пространства имён
Варианты
Действия

Библиотека атомарных операций

Материал из cppreference.com
< cpp
 
 
Библиотека атомарных операций
 

Атомарная библиотека предоставляет компоненты для "мелкозернистых" атомарных операций, обеспечивающих параллельное программирование без блокировки. Каждая атомарная операция неделима по отношению к любой другой атомарной операции, в которой задействован тот же объект. Атомарные объекты свободны от гонок данных.

Определены в заголовочном файле <atomic>

Содержание

Атомарные типы
(C++11)
шаблон класса atomic и его специализации для bool, целочисленных типов и указателей
(шаблон класса) [править]
предоставляет атомарные операции с неатомарными объектами
(шаблон класса) [править]
Операции с атомарными типами
проверяет, являются ли операции атомарного типа неблокирующими
(шаблон функции) [править]
атомарно заменяет значение атомарного объекта неатомарным аргументом
(шаблон функции) [править]
атомарно получает значение, хранящееся в атомарном объекте
(шаблон функции) [править]
атомарно заменяет значение атомарного объекта неатомарным аргументом и возвращает предыдущее атомарное значение
(шаблон функции) [править]
атомарно сравнивает значение атомарного объекта с неатомарным аргументом и выполняет атомарный обмен, если они равны, или атомарную загрузку, если нет
(шаблон функции) [править]
добавляет неатомарное значение к атомарному объекту и п��лучает предыдущее атомарное значение
(шаблон функции) [править]
вычитает неатомарное значение из атомарного объекта и получает предыдущее атомарное значение
(шаблон функции) [править]
заменяет атомарный объект результатом поразрядного И с неатомарным аргументом и получает предыдущее атомарное значение
(шаблон функции) [править]
заменяет атомарный объект результатом поразрядного ИЛИ с неатомарным аргументом и получает предыдущее атомарное значение
(шаблон функции) [править]
заменяет атомарный объект результатом побитового XOR с неатомарным аргументом и получает предыдущее атомарное значение
(шаблон функции) [править]
блокирует поток до получения уведомления и изменения атомарного значения
(шаблон функции) [править]
уведомляет поток, заблокированный в atomic_wait
(шаблон функции) [править]
уведомляет все потоки, заблокированные в atomic_wait
(шаблон функции) [править]
Тип флага и операции
свободный от блокировок логический атомарный тип
(класс) [править]
атомарно устанавливает флаг в true и возвращает его предыдущее значение
(функция) [править]
атомарно устанавливает значение флага в false
(функция) [править]
атомарно возвращает значение флага
(функция) [править]
блокирует поток до тех пор, пока не получит уведомление и не изменится флаг
(функция) [править]
уведомляет поток, заблокированный в atomic_flag_wait
(функция) [править]
уведомляет все потоки, заблокированные в atomic_flag_wait
(функция) [править]
Инициализация
(C++11)(устарело в C++20)
неатомарная инициализация атомарного объекта, созданного по умолчанию
(шаблон функции) [править]
(C++11)(устарело в C++20)
константная инициализация атомарной переменной со статической продолжительностью хранения
(функция-макрос) [править]
инициализирует std::atomic_flag значением false
(макроконстанта) [править]
Порядок синхронизации памяти
определяет ограничения порядка памяти для данной атомарной операции
(перечисление) [править]
удаляет указанный объект из дерева зависимостей std::memory_order_consume
(шаблон функции) [править]
базовый примитив барьера синхронизации, зависящий от порядка доступа к памяти
(функция) [править]
барьер между потоком и обработчиком сигнала, выполняемым в этом же потоке
(функция) [править]

[править] C Совместимость для атомарных типов

Определены в заголовочном файле <stdatomic.h>
(C++23)
макрос совместимости, такой что _Atomic(T) идентичен std::atomic<T>
(функция-макрос) [править]

Ни макрос _Atomic, ни какие-либо объявления глобальных пространств имён, не являющихся макросами, не предоставляются ни одним заголовком стандартной библиотеки C++, кроме <stdatomic.h>.

(начиная с C++23)

[править] Смотрите также

Документация C по Библиотека атомарных операций