std:: shared_lock
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Shared locking | ||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
Definiert im Header
<shared_mutex>
|
||
|
template
<
class
Mutex
>
class shared_lock ; |
(seit C++14) | |
Die Klasse
shared_lock
ist ein allgemeiner Wrapper für den Besitz eines Shared-Mutex, der verzögertes Sperren, zeitgesteuertes Sperren und die Übertragung von Sperreigentum ermöglicht. Das Sperren eines
shared_lock
sperrt den zugehörigen Shared-Mutex im Shared-Modus (um ihn im exklusiven Modus zu sperren, kann
std::unique_lock
verwendet werden).
Die
shared_lock
-Klasse ist verschiebbar, aber nicht kopierbar – sie erfüllt die Anforderungen von
MoveConstructible
und
MoveAssignable
, jedoch nicht die von
CopyConstructible
oder
CopyAssignable
.
shared_lock
erfüllt die
Lockable
Anforderungen. Wenn
Mutex
die
SharedTimedLockable
Anforderungen erfüllt,
shared_lock
erfüllt ebenfalls 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 Unique-Ownership-Modus warten).
Inhaltsverzeichnis |
Template-Parameter
| Mutex | - | der Typ des gemeinsam genutzten Mutex, der gesperrt werden soll. Der Typ muss die SharedLockable Anforderungen erfüllen |
Mitgliedertypen
| Typ | Definition |
mutex_type
|
Mutex
|
Memberfunktionen
Konstruiert einen
shared_lock
, optional mit Sperren des bereitgestellten Mutex
(public member function) |
|
|
Entsperrt den assoziierten Mutex
(public member function) |
|
|
Entsperrt den Mutex (falls im Besitz) und übernimmt Besitz eines anderen
(public member function) |
|
Shared Locking |
|
|
Sperrt den assoziierten Mutex
(public member function) |
|
|
Versucht, den assoziierten Mutex zu sperren
(public member function) |
|
|
Versucht, den assoziierten Mutex für die angegebene Dauer zu sperren
(public member function) |
|
|
Versucht, den assoziierten Mutex bis zu einem bestimmten Zeitpunkt zu sperren
(public member function) |
|
|
Entsperrt den assoziierten Mutex
(public member function) |
|
Modifikatoren |
|
Tauscht die Datenmember mit einem anderen
shared_lock
(public member function) |
|
|
Trennt den Mutex ohne Entsperren
(public member function) |
|
Beobachter |
|
|
Gibt einen Zeiger auf den assoziierten Mutex zurück
(public member function) |
|
|
Prüft, ob die Sperre ihren assoziierten Mutex besitzt
(public member function) |
|
|
Prüft, ob die Sperre ihren assoziierten Mutex besitzt
(public member function) |
|
Nicht-Member-Funktionen
|
(C++14)
|
spezialisiert den
std::swap
Algorithmus
(Funktions-Template) |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 2981 | C++17 |
redundanter Deduction Guide von
shared_lock<Mutex>
wurde bereitgestellt
|
entfernt |