C++ benannte Anforderungen: SharedLockable (seit C++14)
Von cppreference.com
< cpp | benannte req
Die SharedLockable Anforderungen beschreiben die minimalen Eigenschaften von Typen, die geteilte blockierende Semantik für Ausführungsumgebungen (d.h. Threads) bereitstellen.
Inhalt |
[bearbeiten] Anforderungen
Damit der Typ L SharedLockable ist, müssen die folgenden Bedingungen für ein Objekt m vom Typ L erfüllt sein:
| Ausdruck | Vorbedingungen | Effekte | Rückgabewert |
|---|---|---|---|
| m.lock_shared() | Blockiert, bis eine Sperre für die aktuelle Ausführungsumgebung (Thread, Prozess, Task) erhalten werden kann. Wenn eine Ausnahme ausgelöst wird, wird keine Sperre erlangt. | ||
| m.try_lock_shared() | Versucht, eine Sperre für die aktuelle Ausführungsumgebung (Thread, Prozess, Task) zu erhalten, ohne zu blockieren. Wenn eine Ausnahme ausgelöst wird, wird keine Sperre erlangt. | true, wenn die Sperre erlangt wurde, false andernfalls. | |
| m.unlock_shared() | Die aktuelle Ausführungsumgebung hält eine geteilte Sperre für m. |
Gibt die von der Ausführungsumgebung gehaltene geteilte Sperre frei. Löst keine Ausnahmen aus. |
[bearbeiten]
Eine Sperre für ein Objekt wird als geteilte Sperre bezeichnet, wenn sie durch einen Aufruf der Member-Funktionen lock_shared, try_lock_shared, try_lock_shared_for oder try_lock_shared_until erworben wird.
[bearbeiten] Standardbibliothek
Die folgenden Standardbibliothekstypen erfüllen die SharedLockable Anforderungen:
| (C++17) |
bietet gemeinsame Gegenseitiger-Ausschluss-Funktionen (Klasse) |
| (C++14) |
bietet gemeinsame Gegenseitiger-Ausschluss-Funktionen und implementiert ein Sperren mit Timeout (Klasse) |