Biblioteca C ++ - <atómica>

Introducción

Es un objeto de tipos atómicos que contienen un valor de un tipo particular (T) y la principal característica de los objetos atómicos es que el acceso a este valor contenido desde diferentes hilos no puede causar carreras de datos (es decir, hacer eso es un comportamiento bien definido, con accesos debidamente secuenciados). Por lo general, para todos los demás objetos, la posibilidad de provocar una carrera de datos para acceder al mismo objeto al mismo tiempo califica la operación como comportamiento indefinido.

Declaración

A continuación se muestra la declaración de std :: atomic.

template <class T> struct atomic;

Parámetros

T - Es un tipo de valor contenido.

Funciones de miembro

No Señor. Funciones y definición de miembros
1 (constructor)

Es una construcción de un objeto atómico.

2 operador =

Almacena un valor en un objeto atómico.

3 is_lock_free

Comprueba si el objeto atómico está libre de bloqueo

4 Tienda

Reemplaza atómicamente el valor del objeto atómico con un argumento no atómico

5 carga

Obtiene atómicamente el valor del objeto atómico

6 operador T

Carga un valor de un objeto atómico

7 intercambiar

Reemplaza atómicamente el valor del objeto atómico y obtiene el valor que tenía previamente.

8 compare_exchange_weak y compare_exchange_ strong

Compara atómicamente el valor del objeto atómico con el argumento no atómico y realiza un intercambio atómico si es igual o carga atómica si no

Operaciones respaldadas por determinadas especializaciones

No Señor. Operaciones y definición
1 fetch_add

Agrega atómicamente el argumento al valor almacenado en el objeto atómico y obtiene el valor que tenía previamente.

2 fetch_sub

Resta atómicamente el argumento del valor almacenado en el objeto atómico y obtiene el valor que tenía previamente.

3 fetch_and

Realiza atómicamente un AND bit a bit entre el argumento y el valor del objeto atómico y obtiene el valor que tenía previamente

4 fetch_or

Realiza atómicamente OR bit a bit entre el argumento y el valor del objeto atómico y obtiene el valor que tenía previamente

5 fetch_xor

Compara atómicamente el valor del objeto atómico con el argumento no atómico y realiza un intercambio atómico si es igual o carga atómica si no

6 operador ++

Incrementa el valor atómico en uno.

7 operador--

Disminuye el valor atómico en uno.