다음을 통해 공유


recursive_timed_mutex 클래스

시간이 지정된 뮤텍스 형식을 나타냅니다. 이러한 형식의 개체를 사용하면 프로그램 내에서 시간이 제한된 차단을 사용하여 상호 배제를 강제로 수행할 수 있습니다. timed_mutex 형식의 개체와 달리 recursive_timed_mutex 개체에 대한 잠금 메서드 호출의 효과는 적절하게 정의됩니다.

구문

class recursive_timed_mutex;

멤버

공용 생성자

속성 설명
recursive_timed_mutex 잠기지 않은 recursive_timed_mutex 개체를 생성합니다.
~recursive_timed_mutex 소멸자 recursive_timed_mutex 개체에서 사용하는 리소스를 모두 해제합니다.

공용 메서드

이름 설명
lock 스레드가 mutex의 소유권을 가져올 때까지 호출 스레드를 차단합니다.
try_lock 차단되지 않고 mutex의 소유권을 가져오려고 시도합니다.
try_lock_for 지정된 시간 간격으로 mutex의 소유권 가져오기를 시도합니다.
try_lock_until 지정된 시간까지 mutex의 소유권 가져오기를 시도합니다.
unlock mutex의 소유권을 해제합니다.

요구 사항

헤더:<뮤텍스>

네임스페이스: std

lock

스레드가 mutex의 소유권을 가져올 때까지 호출 스레드를 차단합니다.

void lock();

설명

호출 스레드가 mutex를 이미 소유하고 있으면 메서드는 결과를 즉시 반환하며 이전 잠금은 적용된 상태로 유지됩니다.

recursive_timed_mutex 생성자

잠기지 않은 recursive_timed_mutex 개체를 생성합니다.

recursive_timed_mutex();

~recursive_timed_mutex 소멸자

recursive_timed_mutex 개체에서 사용하는 리소스를 모두 해제합니다.

~recursive_timed_mutex();

설명

소멸자가 실행될 때 개체가 잠겨 있는 경우, 이 동작은 정의되지 않습니다.

try_lock

차단되지 않고 mutex의 소유권을 가져오려고 시도합니다.

bool try_lock() noexcept;

Return Value

메서드가 mutex의 소유권을 정상적으로 가져오거나 호출 스레드가 mutex를 이미 소유하고 있으면 true이고 그렇지 않으면 false입니다.

설명

호출 스레드가 mutex를 이미 소유하고 있으면 함수는 true를 즉시 반환하며 이전 잠금은 적용된 상태로 유지됩니다.

try_lock_for

차단되지 않고 mutex의 소유권을 가져오려고 시도합니다.

template <class Rep, class Period>
bool try_lock_for(const chrono::duration<Rep, Period>& Rel_time);

매개 변수

Rel_time
메서드가 mutex의 소유권을 가져오려고 시도하는 최대 시간을 지정하는 chrono::duration 개체입니다.

Return Value

메서드가 mutex의 소유권을 정상적으로 가져오거나 호출 스레드가 mutex를 이미 소유하고 있으면 true이고 그렇지 않으면 false입니다.

설명

호출 스레드가 mutex를 이미 소유하고 있으면 메서드는 true를 즉시 반환하며 이전 잠금은 적용된 상태로 유지됩니다.

try_lock_until

차단되지 않고 mutex의 소유권을 가져오려고 시도합니다.

template <class Clock, class Duration>
bool try_lock_for(const chrono::time_point<Clock, Duration>& Abs_time);

bool try_lock_until(const xtime* Abs_time);

매개 변수

Abs_time
임계값을 지정하는 특정 시점으로, 이 시간 경과 후에는 메서드가 더 이상 mutex의 소유권을 가져오려고 시도하지 않습니다.

Return Value

메서드가 mutex의 소유권을 정상적으로 가져오거나 호출 스레드가 mutex를 이미 소유하고 있으면 true이고 그렇지 않으면 false입니다.

설명

호출 스레드가 mutex를 이미 소유하고 있으면 메서드는 true를 즉시 반환하며 이전 잠금은 적용된 상태로 유지됩니다.

잠금 해제

mutex의 소유권을 해제합니다.

void unlock();

설명

이 메서드는 recursive_timed_mutex 개체에 대해 lock, try_lock, try_lock_fortry_lock_until이 정상적으로 호출된 횟수만큼 호출된 후에만 mutex의 소유권을 해제합니다.

호출 스레드가 mutex를 소유하지 않은 경우, 이 동작은 정의되지 않습니다.

참고 항목

헤더 파일 참조
<mutex>