Biblioteca de operaciones atómicas - cppreference.com
De cppreference.com
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 | |
Tipos atómicos | |
(C++11) |
Plantilla de clase atómica y especializaciones para los tipos bool, enteros y tipos puntero. (plantilla de clase) [editar] |
(C++20) |
Proporciona operaciones atómicas en objetos no atómicos. (plantilla de clase) [editar] |
Operaciones en tipos atómicos | |
(C++11) |
Comprueba si las operaciones del tipo atómico son sin bloqueo. (plantilla de función) [editar] |
(C++11)(C++11) |
Sustituye atómicamente el valor del objeto atómico con el de un argumento no atómico. (plantilla de función) [editar] |
(C++11)(C++11) |
Obtiene atómicamente el valor almacenado en un objeto atómico. (plantilla de función) [editar] |
(C++11)(C++11) |
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] | |
(C++11)(C++11) |
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] |
(C++11)(C++11) |
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] |
(C++11)(C++11) |
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] |
(C++11)(C++11) |
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] |
(C++11)(C++11) |
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] |
(C++20)(C++20) |
Bloquea el hilo/subproceso hasta que se reciba una notificación y el valor atómico cambie. (plantilla de función) [editar] |
(C++20) |
Notifica a un hilo bloqueado en atomic_wait. (plantilla de función) [editar] |
(C++20) |
Notifica a todos los hilos bloqueados en atomic_wait. (plantilla de función) [editar] |
Tipo indicador y operaciones | |
(C++11) |
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] | |
(C++11)(C++11) |
Establece atómicamente el valor de la bandera a false. (función) [editar] |
(C++20)(C++20) |
Devuelve atómicamente el valor de la bandera. (función) [editar] |
(C++20)(C++20) |
Bloquea el hilo/subproceso hasta que haya una notificación y la bandera cambie. (función) [editar] |
(C++20) |
Notifica a un hilo bloqueado en atomic_flag_wait. (función) [editar] |
(C++20) |
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] |
(C++11) |
Inicialización por constante de una variable atómica de duración de almacenamiento estática. (macro de función) [editar] |
(C++11) |
Inicializa una bandera std::atomic_flag a false. (constante de macro) [editar] |
Ordenamiento de sincronización de memoria | |
(C++11) |
Define las restricciones del ordenamiento de memoria para la operación atómica dada. (typedef) [editar] |
(C++11) |
Quita el objeto especificado del árbol de dependencias de std::memory_order_consume. (plantilla de función) [editar] |
(C++11) |
Primitiva de sincronización de barrera genérica de memoria dependiente del orden. (función) [editar] |
(C++11) |
Barrera entre un hilo y un controlador de señales ejecutados en el mismo hilo/subproceso. (función) [editar] |
Compatibilidad de C para tipos atómicos
Macro de compatibilidad tal que _Atomic(T) es idéntico a std::atomic<T> (macro de función) [editar] | |
|
Ni la macro |
(desde C++23) |