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
헤더에 정의됨 <shared_mutex>
template < class Mutex >
class shared_lock ;
(C++14부터)

shared_lock 클래스는 지연된 잠금, 시간 제한 잠금 및 잠금 소유권 이전을 허용하는 범용 공유 뮤텍스 소유권 래퍼입니다. shared_lock 을 잠그면 연결된 공유 뮤텍스를 공유 모드로 잠금니다(독점 모드로 잠그려면 std::unique_lock 을 사용할 수 있습니다).

shared_lock 클래스는 이동 가능하지만 복사할 수는 없습니다 – MoveConstructible MoveAssignable 요구 사항은 충족하지만 CopyConstructible CopyAssignable 요구 사항은 충족하지 않습니다.

shared_lock Lockable 요구 사항을 충족합니다. 만약 Mutex SharedTimedLockable 요구 사항을 충족한다면, shared_lock 또한 TimedLockable 요구 사항을 충족합니다.

공유 소유권 모드에서 공유 뮤텍스를 대기하려면, std::condition_variable_any 를 사용할 수 있습니다 ( std::condition_variable std::unique_lock 을 필요로 하므로 독점 소유권 모드에서만 대기할 수 있습니다).

목차

템플릿 매개변수

Mutex - 공유 뮤텍스를 잠글 타입. 해당 타입은 SharedLockable 요구사항을 충족해야 함

멤버 타입

유형 정의
mutex_type Mutex

멤버 함수

shared_lock 을 생성하며, 선택적으로 제공된 뮤텍스를 잠금
(public member function)
연결된 뮤텍스의 잠금을 해제
(public member function)
소유 중인 경우 뮤텍스 잠금을 해제하고 다른 뮤텍스의 소유권을 획득
(public member function)
공유 잠금
연결된 뮤텍스를 잠금
(public member function)
연결된 뮤텍스 잠금을 시도
(public member function)
지정된 기간 동안 연결된 뮤텍스 잠금을 시도
(public member function)
지정된 시간까지 연결된 뮤텍스 잠금을 시도
(public member function)
연결된 뮤텍스의 잠금을 해제
(public member function)
수정자
데이터 멤버를 다른 shared_lock 과 교환
(public member function)
잠금 해제 없이 뮤텍스 연결을 해제
(public member function)
관찰자
연결된 뮤텍스에 대한 포인터를 반환
(public member function)
잠금이 연결된 뮤텍스를 소유하는지 여부를 테스트
(public member function)
잠금이 연결된 뮤텍스를 소유하는지 여부를 테스트
(public member function)

비멤버 함수

std::swap 알고리즘을 특수화함
(함수 템플릿)

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2981 C++17 shared_lock<Mutex> 에서 중복된 deduction guide가 제공됨 제거됨