Namespaces
Variants

C++ named requirements: BasicLockable (since C++11)

From cppreference.net
C++ named requirements

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

Inhaltsverzeichnis

Anforderungen

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

Expression Preconditions Effects
m. lock ( ) Blockiert, bis eine Sperre für den aktuellen Ausführungsagenten (Thread, Prozess, Task) erworben werden kann. Wenn eine Exception ausgelöst wird, wird keine Sperre erworben.
m. unlock ( ) Der aktuelle Ausführungsagent hält eine exklusive Sperre auf m . Gibt die exklusive Sperre frei, die vom Ausführungsagenten gehalten wird.

Löst keine Exceptions aus.

Nicht gemeinsam genutzte Sperren

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

Standardbibliothek

Die folgenden Standardbibliothekstypen erfüllen BasicLockable Anforderungen:

(C++11)
Bietet grundlegende gegenseitige Ausschlussfunktionalität
(Klasse)
Bietet gegenseitige Ausschlussfunktionalität, die rekursiv durch denselben Thread gesperrt werden kann
(Klasse)
Bietet gegenseitige Ausschlussfunktionalität, die rekursiv
durch denselben Thread gesperrt werden kann und Sperren mit Timeout implementiert
(Klasse)
Bietet gemeinsame gegenseitige Ausschlussfunktionalität
(Klasse)
Bietet gemeinsame gegenseitige Ausschlussfunktionalität und implementiert Sperren mit Timeout
(Klasse)
Bietet gegenseitige Ausschlussfunktionalität, die Sperren mit Timeout implementiert
(Klasse)

Siehe auch