std::shared_lock
| Definiert in Header <shared_mutex> |
||
| template< class Mutex > class shared_lock; |
(seit C++14) | |
Die Klasse shared_lock ist ein universeller Wrapper für den Besitz eines Shared Mutex, der verzögertes Sperren, zeitgesteuertes Sperren und die Übertragung des Sperrbesitzes ermöglicht. Das Sperren eines shared_lock sperrt den zugehörigen Shared Mutex im Shared-Modus (zum Sperren im exklusiven Modus kann std::unique_lock verwendet werden).
Die Klasse shared_lock ist verschiebbar, aber nicht kopierbar – sie erfüllt die Anforderungen von MoveConstructible und MoveAssignable, aber nicht von CopyConstructible oder CopyAssignable.
shared_lock erfüllt die Lockable-Anforderungen. Wenn Mutex die SharedTimedLockable-Anforderungen erfüllt, erfüllt shared_lock auch die TimedLockable-Anforderungen.
Um in einem Shared Mutex im Shared-Ownership-Modus zu warten, kann std::condition_variable_any verwendet werden (std::condition_variable erfordert std::unique_lock und kann daher nur im exklusiven Ownership-Modus warten).
Inhalt |
[edit] Template parameters
| Mutex | - | der Typ des zu sperrenden Shared Mutex. Der Typ muss die SharedLockable-Anforderungen erfüllen. |
[edit] Member types
| Typ | Definition |
mutex_type
|
Mutex
|
[edit] Member functions
konstruiert einen shared_lock, optional durch Sperren des übergebenen Mutex(public member function) | |
| entsperrt den zugehörigen Mutex (public member function) | |
| entsperrt den Mutex, falls er besessen wird, und erwirbt den Besitz eines anderen (public member function) | |
| | |
| sperrt den zugehörigen Mutex (public member function) | |
| versucht, den zugehörigen Mutex zu sperren (public member function) | |
| versucht, den zugehörigen Mutex für die angegebene Dauer zu sperren (public member function) | |
| versucht, den zugehörigen Mutex bis zu einem bestimmten Zeitpunkt zu sperren (public member function) | |
| entsperrt den zugehörigen Mutex (public member function) | |
Modifizierer | |
vertauscht die Datenmember mit einem anderen shared_lock(public member function) | |
| löst die Zuordnung des Mutex auf, ohne ihn zu entsperren (public member function) | |
Observer | |
| gibt einen Zeiger auf den zugehörigen Mutex zurück (public member function) | |
| testet, ob der Lock den zugehörigen Mutex besitzt (public member function) | |
| testet, ob der Lock den zugehörigen Mutex besitzt (public member function) | |
[edit] Non-member functions
| (C++14) |
spezialisiert den Algorithmus std::swap (function template) |
[edit] Defect reports
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 2981 | C++17 | redundanter Deduction Guide von shared_lock<Mutex> wurde bereitgestellt |
entfernt |