Biblioteca C ++ - <atomic>

Introdução

É um objeto de tipos atômicos que contém um valor de um tipo particular (T) e a principal característica dos objetos atômicos é que o acesso a este valor contido de diferentes threads não pode causar corridas de dados (ou seja, fazer isso é um comportamento bem definido, com acessos devidamente sequenciados). Geralmente, para todos os outros objetos, a possibilidade de causar uma corrida de dados para acessar o mesmo objeto simultaneamente qualifica a operação como um comportamento indefinido.

Declaração

A seguir está a declaração para std :: atomic.

template <class T> struct atomic;

Parâmetros

T - É um tipo de valor contido.

Funções de membro

Sr. Não. Funções e definição dos membros
1 (construtor)

É um constrói um objeto atômico

2 operador =

Ele armazena um valor em um objeto atômico

3 is_lock_free

Ele verifica se o objeto atômico está livre de bloqueio

4 loja

Ele substitui atomicamente o valor do objeto atômico por um argumento não atômico

5 carga

Ele obtém atomicamente o valor do objeto atômico

6 operador T

Ele carrega um valor de um objeto atômico

7 troca

Ele substitui atomicamente o valor do objeto atômico e obtém o valor anteriormente mantido

8 compare_exchange_weak & compare_exchange_strong

Ele compara atomicamente o valor do objeto atômico com o argumento não atômico e realiza a troca atômica se for igual ou carga atômica se não

Operações apoiadas por certas especializações

Sr. Não. Operações e Definição
1 fetch_add

Ele adiciona atomicamente o argumento ao valor armazenado no objeto atômico e obtém o valor mantido anteriormente

2 fetch_sub

Ele subtrai atomicamente o argumento do valor armazenado no objeto atômico e obtém o valor mantido anteriormente

3 fetch_and

Ele executa atomicamente AND bit a bit entre o argumento e o valor do objeto atômico e obtém o valor mantido anteriormente

4 fetch_or

Ele executa atomicamente OR bit a bit entre o argumento e o valor do objeto atômico e obtém o valor mantido anteriormente

5 fetch_xor

Ele compara atomicamente o valor do objeto atômico com o argumento não atômico e realiza a troca atômica se for igual ou carga atômica se não

6 operador ++

Ele aumenta o valor atômico em um

7 operador--

Ele diminui o valor atômico em um