C++ named requirements: BasicLockable (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BasicLockable 요구 사항은 실행 에이전트(즉, 스레드)에 대한 배타적 차단 의미론을 제공하는 타입들의 최소 특성을 설명합니다.
목차 |
요구사항
타입
L
이
BasicLockable
이 되기 위해서는, 타입
L
의 객체
m
에 대해 다음 조건들이 만족되어야 합니다:
| Expression | Preconditions | Effects |
|---|---|---|
| m. lock ( ) | 현재 실행 에이전트(스레드, 프로세스, 태스크)가 lock을 획득할 때까지 블록합니다. 예외가 발생하면 lock을 획득하지 않습니다. | |
| m. unlock ( ) |
현재 실행 에이전트가
m
에 대해 비공유 lock을 보유하고 있습니다.
|
실행 에이전트가 보유한 비공유 lock을 해제합니다.
예외를 발생시키지 않습니다. |
비공유 락
객체에 대한 락이
비공유 락(non-shared lock)
이라고 말하는 것은
lock
,
try_lock
,
try_lock_for
, 또는
try_lock_until
멤버 함수 호출을 통해 획득된 경우입니다.
표준 라이브러리
다음 표준 라이브러리 타입들은 BasicLockable 요구사항을 충족합니다:
|
(C++11)
|
기본 상호 배제 기능 제공
(클래스) |
|
(C++11)
|
동일 스레드에서 재귀적으로 잠글 수 있는 상호 배제 기능 제공
(클래스) |
|
(C++11)
|
동일 스레드에서 재귀적으로 잠글 수 있는 상호 배제 기능 제공
타임아웃을 통한 잠금 구현 (클래스) |
|
(C++17)
|
공유 상호 배제 기능 제공
(클래스) |
|
(C++14)
|
공유 상호 배제 기능 제공 및 타임아웃을 통한 잠금 구현
(클래스) |
|
(C++11)
|
타임아웃을 통한 잠금을 구현하는 상호 배제 기능 제공
(클래스) |