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. |