Namensräume
Varianten
Aktionen

std::shared_lock

Von cppreference.com
< cpp‎ | thread
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
shared_lock
(C++14)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
Freie Funktionen für atomare Flags
 
 
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) [edit]
entsperrt den zugehörigen Mutex
(public member function) [edit]
entsperrt den Mutex, falls er besessen wird, und erwirbt den Besitz eines anderen
(public member function) [edit]
Gemeinsames Sperren
sperrt den zugehörigen Mutex
(public member function) [edit]
versucht, den zugehörigen Mutex zu sperren
(public member function) [edit]
versucht, den zugehörigen Mutex für die angegebene Dauer zu sperren
(public member function) [edit]
versucht, den zugehörigen Mutex bis zu einem bestimmten Zeitpunkt zu sperren
(public member function) [edit]
entsperrt den zugehörigen Mutex
(public member function) [edit]
Modifizierer
vertauscht die Datenmember mit einem anderen shared_lock
(public member function) [edit]
löst die Zuordnung des Mutex auf, ohne ihn zu entsperren
(public member function) [edit]
Observer
gibt einen Zeiger auf den zugehörigen Mutex zurück
(public member function) [edit]
testet, ob der Lock den zugehörigen Mutex besitzt
(public member function) [edit]
testet, ob der Lock den zugehörigen Mutex besitzt
(public member function) [edit]

[edit] Non-member functions

spezialisiert den Algorithmus std::swap
(function template) [edit]

[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