Namensräume
Varianten
Aktionen

C++ benannte Anforderungen: BasicLockable (seit C++11)

Von cppreference.com
 
 
C++ benannte Anforderungen
 

Die BasicLockable-Anforderungen beschreiben die minimalen Eigenschaften von Typen, die exklusive Sperrsemantik für Ausführungsagenten (d.h. Threads) bereitstellen.

Inhalt

[bearbeiten] Anforderungen

Damit der Typ L BasicLockable ist, müssen die folgenden Bedingungen für ein Objekt m vom Typ L erfüllt sein:

Ausdruck Vorbedingungen Effekte
m.lock() Blockiert, bis eine Sperre für den aktuellen Ausführungsagenten (Thread, Prozess, Task) erworben werden kann. Wenn eine Ausnahme ausgelöst wird, wird keine Sperre erworben.
m.unlock() Der aktuelle Ausführungsagent hält eine nicht geteilte Sperre auf m. Gibt die vom Ausführungsagenten gehaltene nicht geteilte Sperre frei.

Löst keine Ausnahmen aus.

[bearbeiten] Nicht geteilte Sperren

Eine Sperre auf einem Objekt wird als nicht geteilte Sperre bezeichnet, wenn sie durch einen Aufruf der Memberfunktion lock, try_lock, try_lock_for oder try_lock_until erworben wird.

[bearbeiten] Standardbibliothek

Die folgenden Standardbibliotheken-Typen erfüllen die BasicLockable-Anforderungen:

(C++11)
bietet grundlegende Gegenseitiger-Ausschluss-Funktionen
(Klasse) [bearbeiten]
bietet Gegenseitiger-Ausschluss-Funktionen, die von demselben Thread rekursiv gesperrt werden können
(Klasse) [bearbeiten]
bietet Gegenseitiger-Ausschluss-Funktionen, die rekursiv gesperrt werden können
von demselben Thread und implementiert ein Sperren mit Timeout
(Klasse) [bearbeiten]
bietet gemeinsame Gegenseitiger-Ausschluss-Funktionen
(Klasse) [bearbeiten]
bietet gemeinsame Gegenseitiger-Ausschluss-Funktionen und implementiert ein Sperren mit Timeout
(Klasse) [bearbeiten]
bietet Gegenseitiger-Ausschluss-Funktionen, die ein Sperren mit Timeout implementieren
(Klasse) [bearbeiten]

[bearbeiten] Siehe auch