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> | ||
Tipos atómicos | ||
(C++11) |
Plantilla de clase atómica y especializaciones para los tipos bool , enteros y tipos puntero. (plantilla de clase) | |
(C++20) |
Proporciona operaciones atómicas en objetos no atómicos. (plantilla de clase) | |
Operaciones en tipos atómicos | ||
(C++11) |
Comprueba si las operaciones del tipo atómico son sin bloqueo. (plantilla de función) | |
(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) | |
(C++11)(C++11) |
Obtiene atómicamente el valor almacenado en un objeto atómico. (plantilla de función) | |
(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) | |
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) | ||
(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) | |
(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) | |
(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) | |
(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) | |
(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) | |
(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) | |
(C++20) |
Notifica a un hilo bloqueado en atomic_wait. (plantilla de función) | |
(C++20) |
Notifica a todos los hilos bloqueados en atomic_wait. (plantilla de función) | |
Tipo indicador y operaciones | ||
(C++11) |
El tipo atómico booleano libre de bloqueo. (clase) | |
Establece atómicamente la bandera a true y devuelve su valor anterior. (función) | ||
(C++11)(C++11) |
Establece atómicamente el valor de la bandera a false. (función) | |
(C++20)(C++20) |
Devuelve atómicamente el valor de la bandera. (función) | |
(C++20)(C++20) |
Bloquea el hilo/subproceso hasta que haya una notificación y la bandera cambie. (función) | |
(C++20) |
Notifica a un hilo bloqueado en atomic_flag_wait. (función) | |
(C++20) |
Notifica a todos los hilos bloqueados en atomic_flag_wait. (función) | |
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) | |
(C++11) |
Inicialización por constante de una variable atómica de duración de almacenamiento estática. (macro de función) | |
(C++11) |
Inicializa una bandera std::atomic_flag a false. (constante de macro) | |
Ordenamiento de sincronización de memoria | ||
(C++11) |
Define las restricciones del ordenamiento de memoria para la operación atómica dada. (typedef) | |
(C++11) |
Quita el objeto especificado del árbol de dependencias de std::memory_order_consume. (plantilla de función) | |
(C++11) |
Primitiva de sincronización de barrera genérica de memoria dependiente del orden. (función) | |
(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
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) |
Ni la macro |
(desde C++23) |
[editar] Véase también
Documentación de C para Biblioteca de operaciones atómicas
|