Namensräume
Varianten
Aktionen

std::atomic_ref<T>::is_lock_free

Von cppreference.com
< cpp‎ | atomic‎ | atomic ref
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
Freie Funktionen für atomare Flags
 
 
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

[bearbeiten] Siehe auch

zeigt an, dass der Typ immer lock-frei ist
(öffentliche statische Elementkonstante) [bearbeiten]