C++ named requirements: SharedLockable (since C++14)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Die SharedLockable Anforderungen beschreiben die minimalen Eigenschaften von Typen, die gemeinsame blockierende Semantik für Ausführungsagenten (d.h. Threads) bereitstellen.
Inhaltsverzeichnis |
Anforderungen
Damit Typ
L
SharedLockable
ist, müssen die folgenden Bedingungen für ein Objekt
m
vom Typ
L
erfüllt sein:
| Expression | Vorbedingungen | Effekte | Rückgabewert |
|---|---|---|---|
| m. lock_shared ( ) | Blockiert, bis eine Sperre für den aktuellen Ausführungsagenten (Thread, Prozess, Task) erhalten werden kann. Wenn eine Ausnahme ausgelöst wird, wird keine Sperre erhalten. | ||
| m. try_lock_shared ( ) | Versucht, eine Sperre für den aktuellen Ausführungsagenten (Thread, Prozess, Task) ohne Blockierung zu erhalten. Wenn eine Ausnahme ausgelöst wird, wird keine Sperre erhalten. | true wenn die Sperre erhalten wurde, false andernfalls | |
| m. unlock_shared ( ) |
Der aktuelle Ausführungsagent hält eine Shared-Lock auf
m
.
|
Gibt die Shared-Lock frei, die vom Ausführungsagenten gehalten wird.
Löst keine Ausnahmen aus. |
Gemeinsame Sperren
Eine Sperre auf einem Objekt wird als
Shared Lock
bezeichnet, wenn sie durch einen Aufruf der
lock_shared
,
try_lock_shared
,
try_lock_shared_for
- oder
try_lock_shared_until
-Memberfunktion erworben wird.
Standardbibliothek
Die folgenden Standardbibliothekstypen erfüllen SharedLockable Anforderungen:
|
(C++17)
|
bietet Einrichtung für gemeinsamen gegenseitigen Ausschluss
(Klasse) |
|
(C++14)
|
bietet Einrichtung für gemeinsamen gegenseitigen Ausschluss und implementiert Sperrung mit Timeout
(Klasse) |