C++ named requirements: BasicLockable (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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) |
|
(C++11)
|
Bietet gegenseitige Ausschlussfunktionalität, die rekursiv durch denselben Thread gesperrt werden kann
(Klasse) |
|
(C++11)
|
Bietet gegenseitige Ausschlussfunktionalität, die rekursiv
durch denselben Thread gesperrt werden kann und Sperren mit Timeout implementiert (Klasse) |
|
(C++17)
|
Bietet gemeinsame gegenseitige Ausschlussfunktionalität
(Klasse) |
|
(C++14)
|
Bietet gemeinsame gegenseitige Ausschlussfunktionalität und implementiert Sperren mit Timeout
(Klasse) |
|
(C++11)
|
Bietet gegenseitige Ausschlussfunktionalität, die Sperren mit Timeout implementiert
(Klasse) |