Namespaces
Variants

std::atomic_ref<T>:: is_lock_free

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
bool is_lock_free ( ) const noexcept ;
(desde C++20)

Comprueba si las operaciones atómicas en este objeto están libres de bloqueo.

Contenidos

Parámetros

(ninguno)

Valor de retorno

true si las operaciones atómicas en este objeto son libres de bloqueo, false en caso contrario.

Notas

Todos los tipos atómicos excepto std::atomic_flag pueden ser implementados usando mutexes u otras operaciones de bloqueo, en lugar de usar las instrucciones atómicas libres de bloqueo de la CPU. También se permite que los tipos atómicos sean a veces libres de bloqueo, por ejemplo, si solo los accesos a memoria alineados son naturalmente atómicos en una arquitectura dada, los objetos desalineados del mismo tipo deben usar bloqueos.

El estándar de C++ recomienda (pero no requiere) que las operaciones atómicas lock-free también sean address-free, es decir, adecuadas para la comunicación entre procesos que utilizan memoria compartida.

Ejemplo

Véase también

indica que el tipo es siempre libre de bloqueo
(constante de miembro estática pública)