Espacios de nombres
Variantes
Acciones

Biblioteca de operaciones atómicas

De cppreference.com
< cpp
 
 
 

La biblioteca atómica proporciona componentes para operaciones atómicas detalladas que permiten la programación concurrente sin bloqueo. Cada operación atómica es indivisible con respecto a cualquier otra operación atómica que involucre el mismo objeto. Los objetos atómicos están libres de carreras de datos.

Definido en el archivo de encabezado <atomic>

Contenido

Tipos atómicos
(C++11)
Plantilla de clase atómica y especializaciones para los tipos bool, enteros y tipos puntero.
(plantilla de clase) [editar]
Proporciona operaciones atómicas en objetos no atómicos.
(plantilla de clase) [editar]
Operaciones en tipos atómicos
Comprueba si las operaciones del tipo atómico son sin bloqueo.
(plantilla de función) [editar]
Sustituye atómicamente el valor del objeto atómico con el de un argumento no atómico.
(plantilla de función) [editar]
Obtiene atómicamente el valor almacenado en un objeto atómico.
(plantilla de función) [editar]
Reemplaza atómicamente el valor del objeto atómico con el del argumento no atómico y devuelve el valor anterior del objeto atómico.
(plantilla de función) [editar]
Compara atómicamente el valor del objeto atómico con el argumento no atómico y realiza un intercambio atómico si son iguales o una carga atómica si no lo son.
(plantilla de función) [editar]
Agrega un valor no atómico a un objeto atómico y obtiene el valor anterior del objeto atómico.
(plantilla de función) [editar]
Resta un valor no atómico de un objeto atómico y obtiene el valor anterior del objeto atómico.
(plantilla de función) [editar]
Reemplaza el objeto atómico con el resultado de la operación lógica AND con un argumento no atómico y obtiene el valor anterior del objeto atómico.
(plantilla de función) [editar]
Reemplaza el objeto atómico con el resultado de la operación lógica OR con un argumento no atómico y obtiene el valor anterior del objeto atómico.
(plantilla de función) [editar]
Reemplaza el objeto atómico con el resultado de la operación lógica XOR con un argumento no atómico y obtiene el valor anterior del objeto atómico.
(plantilla de función) [editar]
Bloquea el hilo/subproceso hasta que se reciba una notificación y el valor atómico cambie.
(plantilla de función) [editar]
Notifica a un hilo bloqueado en atomic_wait.
(plantilla de función) [editar]
Notifica a todos los hilos bloqueados en atomic_wait.
(plantilla de función) [editar]
Tipo indicador y operaciones
El tipo atómico booleano libre de bloqueo.
(clase) [editar]
Establece atómicamente la bandera a true y devuelve su valor anterior.
(función) [editar]
Establece atómicamente el valor de la bandera a false.
(función) [editar]
Devuelve atómicamente el valor de la bandera.
(función) [editar]
Bloquea el hilo/subproceso hasta que haya una notificación y la bandera cambie.
(función) [editar]
Notifica a un hilo bloqueado en atomic_flag_wait.
(función) [editar]
Notifica a todos los hilos bloqueados en atomic_flag_wait.
(función) [editar]
Inicialización
(C++11)(en desuso en C++20)
Inicialización no atómica de un objeto atómico construido por defecto.
(plantilla de función) [editar]
Inicialización por constante de una variable atómica de duración de almacenamiento estática.
(macro de función) [editar]
Inicializa una bandera std::atomic_flag a false.
(constante de macro) [editar]
Ordenamiento de sincronización de memoria
Define las restricciones del ordenamiento de memoria para la operación atómica dada.
(typedef) [editar]
Quita el objeto especificado del árbol de dependencias de std::memory_order_consume.
(plantilla de función) [editar]
Primitiva de sincronización de barrera genérica de memoria dependiente del orden.
(función) [editar]
Barrera entre un hilo y un controlador de señales ejecutados en el mismo hilo/subproceso.
(función) [editar]

[editar] Compatibilidad de C para tipos atómicos

Definido en el archivo de encabezado <stdatomic.h>
(C++23)
Macro de compatibilidad tal que _Atomic(T) es idéntico a std::atomic<T>
(macro de función) [editar]

Ni la macro _Atomic, ni ninguna de las declaraciones no macro en el espacio de nombres global se proporcionan por ningún encabezado de la biblioteca estándar de C++, excepto <stdatomic.h>.

(desde C++23)

[editar] Véase también

Documentación de C para Biblioteca de operaciones atómicas