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 ;
(depuis C++20)

Vérifie si les opérations atomiques sur cet objet sont sans verrouillage.

Table des matières

Paramètres

(aucun)

Valeur de retour

true si les opérations atomiques sur cet objet sont sans verrou, false sinon.

Notes

Tous les types atomiques à l'exception de std::atomic_flag peuvent être implémentés en utilisant des mutex ou d'autres opérations de verrouillage, plutôt qu'en utilisant les instructions atomiques sans verrou du CPU. Il est également permis que les types atomiques soient parfois sans verrou, par exemple si seuls les accès mémoire alignés sont naturellement atomiques sur une architecture donnée, les objets non alignés du même type doivent utiliser des verrous.

La norme C++ recommande (mais n'exige pas) que les opérations atomiques sans verrouillage soient également sans adresse, c'est-à-dire adaptées à la communication entre processus utilisant la mémoire partagée.

Exemple

Voir aussi

indique que le type est toujours sans verrou
(constante de membre statique publique)