Namensräume
Varianten
Aktionen

std::shared_timed_mutex::lock_shared

Von cppreference.com
 
 
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)
(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
 
 
void lock_shared();
(seit C++14)

Erlangt gemeinsamen Besitz des Mutex. Wenn ein anderer Thread den Mutex im exklusiven Besitz hält, blockiert ein Aufruf von lock_shared die Ausführung, bis gemeinsamer Besitz erlangt werden kann.

Wenn lock_shared von einem Thread aufgerufen wird, der den mutex bereits in irgendeinem Modus (exklusiv oder gemeinsam) besitzt, ist das Verhalten undefiniert.

Wenn mehr als die implementierungsdefinierte maximale Anzahl von gemeinsamen Besitzern den Mutex bereits im gemeinsamen Modus gesperrt hat, blockiert lock_shared die Ausführung, bis die Anzahl der gemeinsamen Besitzer reduziert ist. Die maximale Anzahl von Besitzern ist garantiert mindestens 10000.

Eine vorherige unlock()-Operation für denselben Mutex synchronisiert sich mit (wie in std::memory_order definiert) dieser Operation.

Inhalt

[edit] Parameter

(keine)

[edit] Rückgabewert

(keine)

[edit] Ausnahmen

Wirft std::system_error bei Fehlern, einschließlich Fehlern des zugrunde liegenden Betriebssystems, die verhindern, dass lock seine Spezifikationen erfüllt. Die Mutex ist im Falle einer geworfenen Ausnahme nicht gesperrt.

[edit] Hinweise

lock_shared() wird normalerweise nicht direkt aufgerufen: std::shared_lock wird zur Verwaltung der gemeinsamen Sperrung verwendet.

[edit] Beispiel

[edit] Siehe auch

sperrt den Mutex, blockiert, wenn der Mutex nicht verfügbar ist
(public member function) [edit]
versucht, den Mutex für gemeinsamen Besitz zu sperren, kehrt zurück, wenn der Mutex nicht verfügbar ist
(public member function) [edit]
entsperrt den Mutex (gemeinsamer Besitz)
(public member function) [edit]