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
를 즉시 반환하며 이전 잠금은 적용된 상태로 유지됩니다.
unlock
mutex
의 소유권을 해제합니다.
void unlock();
설명
이 메서드는 recursive_timed_mutex
개체에 대해 lock, try_lock, try_lock_for 및 try_lock_until이 정상적으로 호출된 횟수만큼 호출된 후에만 mutex
의 소유권을 해제합니다.
호출 스레드가 mutex
를 소유하지 않은 경우, 이 동작은 정의되지 않습니다.