Namespaces
Variants

std:: shared_lock

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
(C++11)
(C++11)
shared_lock
(C++14)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
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

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