Это типы, которые инкапсулируют значение, доступ к которому гарантированно не вызывает гонок данных, и могут использоваться для синхронизации обращений к памяти между различными потоками, а в атомарной библиотеке предусмотрены компоненты для мелкозернистых атомарных операций, что позволяет выполнять параллельное программирование без блокировок. Каждая атомарная операция неделима по отношению к любой другой атомарной операции, в которой участвует тот же объект.
Атомный тип
Sr.No. | Типы членов и определение |
---|---|
1 | атомное
Шаблон атомарного класса и специализации для типов bool, целых и указателей |
Шаблон атомарного класса и специализации для типов bool, целых и указателей
С-стиль атомных типов
Ниже приведены атомарные типы, которые также определены в этом заголовке.
атомика для фундаментальных целочисленных типов .
Это либо определения типа соответствующей полной специализации шаблона атомарного класса, либо базовый класс такой специализации.
атомика для основанных на ширине интегралов (определенных в <cinttypes> ).
Каждый из них является либо псевдонимом одной из приведенных выше атомик для фундаментальных целочисленных типов, либо полной специализацией шаблона атомного класса с расширенным целочисленным типом .
Где N — один из 8, 16, 32, 64 или любой другой ширины типа, поддерживаемой библиотекой.
Он используется для проверки того, что операции атомарного типа не блокируются
Он автоматически заменяет значение атомного объекта неатомарным аргументом
Он атомарно получает значение, хранящееся в атомарном объекте
Он атомарно заменяет значение атомарного объекта неатомарным аргументом и возвращает старое значение атомарного
Он атомарно сравнивает значение атомного объекта с неатомарным аргументом и выполняет атомный обмен, если он равен, или атомную нагрузку, если нет
Он добавляет неатомарное значение к атомному объекту и получает предыдущее значение атомного
Вычитает неатомарное значение из атомарного объекта и получает предыдущее значение атомного
Он заменяет атомарный объект результатом логического И с неатомарным аргументом и получает предыдущее значение атомарного
Он заменяет атомарный объект результатом логического ИЛИ неатомарным аргументом и получает предыдущее значение атомарного
Он заменяет атомарный объект результатом логического XOR неатомарным аргументом и получает предыдущее значение атомарного
Безблокировочный логический тип
Он атомарно устанавливает флаг в true и возвращает его предыдущее значение
Атомно устанавливает значение флага в false