C++ named requirements: SharedLockable (since C++14)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SharedLockable 요구 사항은 실행 에이전트(즉, 스레드)에 대한 공유 차단 의미론을 제공하는 타입의 최소 특성을 설명합니다.
목차 |
요구사항
타입
L
이
SharedLockable
이 되기 위해서는, 타입
L
의 객체
m
에 대해 다음 조건들이 만족되어야 합니다:
| Expression | Preconditions | Effects | Return value |
|---|---|---|---|
| m. lock_shared ( ) | 현재 실행 에이전트(스레드, 프로세스, 태스크)가 잠금을 획득할 때까지 블로킹됩니다. 예외가 발생하면 잠금을 획득하지 못합니다. | ||
| m. try_lock_shared ( ) | 블로킹 없이 현재 실행 에이전트(스레드, 프로세스, 태스크)에 대한 잠금 획득을 시도합니다. 예외가 발생하면 잠금을 획득하지 못합니다. | true 잠금을 획득한 경우, false 그렇지 않은 경우 | |
| m. unlock_shared ( ) |
현재 실행 에이전트가
m
에 대한 공유 잠금을 보유하고 있습니다.
|
실행 에이전트가 보유한 공유 잠금을 해제합니다.
예외를 발생시키지 않습니다. |
공유 락
객체에 대한 락이
공유 락(shared lock)
이라고 불리려면
lock_shared
,
try_lock_shared
,
try_lock_shared_for
, 또는
try_lock_shared_until
멤버 함수 호출을 통해 획득되어야 합니다.
표준 라이브러리
다음 표준 라이브러리 타입들은 SharedLockable 요구 사항을 충족합니다:
|
(C++17)
|
공유 상호 배제 기능을 제공함
(클래스) |
|
(C++14)
|
공유 상호 배제 기능을 제공하고 타임아웃으로 잠금을 구현함
(클래스) |