critical_section 클래스
동시성 런타임을 명시적으로 인식하는 재진입성이 아닌 뮤텍스입니다.
구문
class critical_section;
멤버
공용 Typedefs
속성 | 설명 |
---|---|
native_handle_type |
critical_section 개체에 대한 참조입니다. |
public 클래스
속성 | 설명 |
---|---|
critical_section::scoped_lock 클래스 | 개체에 대한 예외 안전 RAII 래퍼입니다 critical_section . |
공용 생성자
속성 | 설명 |
---|---|
critical_section | 새 중요 섹션을 생성합니다. |
~critical_section 소멸자 | 중요한 섹션을 삭제합니다. |
공용 메서드
이름 | 설명 |
---|---|
lock | 이 중요한 섹션을 가져옵니다. |
native_handle | 플랫폼별 네이티브 핸들(있는 경우)을 반환합니다. |
try_lock | 차단 없이 잠금을 획득하려고 시도합니다. |
try_lock_for | 특정 기간(밀리초) 동안 차단하지 않고 잠금을 가져오려고 시도합니다. |
unlock | 중요한 섹션의 잠금을 해제합니다. |
설명
자세한 내용은 동기화 데이터 구조를 참조 하세요.
상속 계층 구조
critical_section
요구 사항
헤더: concrt.h
네임스페이스: 동시성
critical_section
새 중요 섹션을 생성합니다.
critical_section();
~critical_section
중요한 섹션을 삭제합니다.
~critical_section();
설명
소멸자가 실행될 때 잠금이 더 이상 유지되지 않을 것으로 예상됩니다. 잠금이 유지된 상태에서 중요한 섹션이 소멸되도록 허용하면 정의되지 않은 동작이 발생합니다.
lock
이 중요한 섹션을 가져옵니다.
void lock();
설명
scoped_lock 구문을 활용하여 개체를 안전하게 획득하고 해제 critical_section
하는 것이 더 안전한 경우가 많습니다.
호출 컨텍스트 에서 잠금을 이미 보유하고 있으면 improper_lock 예외가 throw됩니다.
native_handle
플랫폼별 네이티브 핸들(있는 경우)을 반환합니다.
native_handle_type native_handle();
Return Value
중요 섹션에 대한 참조입니다.
설명
critical_section
개체는 Windows 운영 체제에 대한 플랫폼별 네이티브 핸들과 연결되지 않습니다. 메서드는 단순히 개체 자체에 대한 참조를 반환합니다.
critical_section::scoped_lock 클래스
개체에 대한 예외 안전 RAII 래퍼입니다 critical_section
.
class scoped_lock;
scoped_lock::scoped_lock
개체를 scoped_lock
생성하고 매개 변수에 critical_section
전달된 개체를 _Critical_section
가져옵니다. 중요한 섹션이 다른 스레드에 의해 유지되면 이 호출이 차단됩니다.
explicit _CRTIMP scoped_lock(critical_section& _Critical_section);
매개 변수
_Critical_section
잠글 중요한 섹션입니다.
scoped_lock::~scoped_lock
개체를 scoped_lock
삭제하고 생성자에 제공된 중요한 섹션을 해제합니다.
~scoped_lock();
try_lock
차단 없이 잠금을 획득하려고 시도합니다.
bool try_lock();
Return Value
잠금을 획득하면 값 true
이고, 그렇지 않으면 값 false
입니다.
try_lock_for
특정 기간(밀리초) 동안 차단하지 않고 잠금을 가져오려고 시도합니다.
bool try_lock_for(unsigned int _Timeout);
매개 변수
_타임 아웃
시간이 초과되기 전에 대기하는 기간(밀리초)입니다.
Return Value
잠금을 획득하면 값 true
이고, 그렇지 않으면 값 false
입니다.
unlock
중요한 섹션의 잠금을 해제합니다.
void unlock();