std:: shared_lock
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Shared locking | ||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
헤더에 정의됨
<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) |
|
비멤버 함수
|
(C++14)
|
std::swap
알고리즘을 특수화함
(함수 템플릿) |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 2981 | C++17 |
shared_lock<Mutex>
에서 중복된 deduction guide가 제공됨
|
제거됨 |