다음을 통해 공유


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();

참고 항목

concurrency 네임스페이스
reader_writer_lock 클래스