Namespaces
Variants

std::shared_timed_mutex:: lock_shared

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

Erwirbt gemeinsamen Besitz des Mutex. Wenn ein anderer Thread den Mutex im exklusiven Besitz hält, wird ein Aufruf von lock_shared die Ausführung blockieren, bis gemeinsamer Besitz erworben werden kann.

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

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

Eine vorherige unlock() -Operation auf demselben Mutex synchronizes-with (wie definiert in std::memory_order ) dieser Operation.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

(keine)

Exceptions

Wirft std::system_error bei Auftreten von Fehlern, einschließlich Fehlern des zugrundeliegenden Betriebssystems, die verhindern würden, dass lock seine Spezifikationen erfüllen kann. Das Mutex wird im Falle einer ausgelösten Ausnahme nicht gesperrt.

Hinweise

lock_shared() wird normalerweise nicht direkt aufgerufen: std::shared_lock wird verwendet, um gemeinsames Sperren zu verwalten.

Beispiel

Siehe auch

sperrt das Mutex, blockiert falls das Mutex nicht verfügbar ist
(öffentliche Elementfunktion)
versucht das Mutex für gemeinsamen Besitz zu sperren, kehrt zurück falls das Mutex nicht verfügbar ist
(öffentliche Elementfunktion)
entsperrt das Mutex (gemeinsamer Besitz)
(öffentliche Elementfunktion)