std::atomic_ref<T>::is_lock_free
| bool is_lock_free() const noexcept; |
(seit C++20) | |
Prüft, ob die atomaren Operationen auf diesem Objekt sperrfrei sind.
Inhalt |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
true, wenn die atomaren Operationen auf diesem Objekt sperrfrei sind, andernfalls false.
[bearbeiten] Hinweise
Alle atomaren Typen außer std::atomic_flag können mithilfe von Mutexen oder anderen Sperroperationen implementiert werden, anstatt sperrfreie atomare CPU-Instruktionen zu verwenden. Atomare Typen dürfen auch manchmal sperrfrei sein, z. B. wenn auf einer bestimmten Architektur nur ausgerichtete Speicherzugriffe von Natur aus atomar sind, müssen nicht ausgerichtete Objekte desselben Typs Sperren verwenden.
Der C++-Standard empfiehlt (fordert aber nicht), dass lock-free atomare Operationen auch adressfrei sind, d.h. für die Kommunikation zwischen Prozessen mithilfe von Shared Memory geeignet sind.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| [static] |
zeigt an, dass der Typ immer lock-frei ist (öffentliche statische Elementkonstante) |