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

Prüft, ob die atomaren Operationen auf diesem Objekt sperrfrei sind.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

true wenn die atomaren Operationen auf diesem Objekt lock-free sind, false andernfalls.

Hinweise

Alle atomaren Typen außer std::atomic_flag können mittels Mutexen oder anderen Sperroperationen implementiert werden, anstatt die lock-freien atomaren CPU-Befehle zu verwenden. Atomaren Typen ist es ebenfalls erlaubt, manchmal lock-free zu sein, z.B. wenn auf einer gegebenen Architektur nur ausgerichtete Speicherzugriffe natürlich atomar sind, müssen falsch ausgerichtete Objekte desselben Typs Sperren verwenden.

Der C++-Standard empfiehlt (aber verlangt nicht), dass lockfreie atomare Operationen auch adressfrei sind, das heißt, geeignet für die Kommunikation zwischen Prozessen, die Shared Memory verwenden.

Beispiel

Siehe auch

zeigt an, dass der Typ immer sperrfrei ist
(öffentliche statische Member-Konstante)