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 ( ) ;
(C++14 이후)

뮤텍스의 공유 소유권을 획득합니다. 다른 스레드가 뮤텍스를 배타적 소유권으로 보유 중인 경우, lock_shared 호출은 공유 소유권을 획득할 수 있을 때까지 실행을 차단합니다.

만약 lock_shared 가 이미 mutex 를 어떤 모드(독점 또는 공유)로든 소유하고 있는 스레드에 의해 호출되면, 그 동작은 정의되지 않습니다.

공유 모드에서 뮤텍스를 이미 잠근 공유 소유자의 수가 구현에서 정의된 최대 수를 초과하는 경우, lock_shared 는 공유 소유자 수가 감소할 때까지 실행을 차단합니다. 최대 소유자 수는 최소 10000임이 보장됩니다.

동일한 뮤텍스에 대한 이전 unlock() 연산은 이 연산과 synchronizes-with ( std::memory_order 에 정의된 대로) 관계를 가집니다.

목차

매개변수

(없음)

반환값

(없음)

예외

오류가 발생하면 std::system_error 를 발생시킵니다. 여기에는 lock 이 명세를 충족하는 것을 방해하는 기본 운영 체제의 오류도 포함됩니다. 예외가 발생한 경우 뮤텍스는 잠기지 않은 상태입니다.

참고 사항

lock_shared() 는 일반적으로 직접 호출되지 않습니다: std::shared_lock 이 공유 잠금을 관리하는 데 사용됩니다.

예제

참고 항목

뮤텍스를 잠금니다, 뮤텍스를 사용할 수 없는 경우 차단됩니다
(public member function)
공유 소유권을 위해 뮤텍스를 잠그려 시도합니다, 뮤텍스를 사용할 수 없는 경우 반환됩니다
(public member function)
뮤텍스를 잠금 해제합니다 (공유 소유권)
(public member function)