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 |