std::timed_mutex
일반적인 std::mutex와 사용성은 완전 동일하지만, 맴버 함수의 차이가 있다.
| std::mutex | std::timed_mutex | |
| lock | O | O |
| try_lock | O | O |
| unlock | O | O |
| native_handle (OS단의 핸들을 얻는 함수) |
O | O |
| try_lock_for | X | O |
| try_lock_until | X | O |
std::recursive_mutex
하나의 스레드가 "여러번 뮤텍스 소유" 가능.
소유한 횟수 만큼 unlock() 해야한다.
어떤 경우에 사용할까?
// std::recursive_mutex 사용 예시
class rMutex {
private:
int shared_data = 0;
std::recursive_mutex m;
public:
void f1() {
m.lock();
shard_data = 10;
m.unlock();
}
void f2() {
m.lock();
shard_data = 20;
f1();
m.unlock();
}
}728x90
'Language > C++' 카테고리의 다른 글
| [C++] std::unique_lock, std::scope_lock, std::shared_lock (5) | 2025.07.09 |
|---|---|
| [C++] std::shared_mutex (0) | 2025.07.08 |
| [C++] std::jthread (0) | 2025.01.06 |
| [C++] std::async (0) | 2024.12.20 |
| [C++] std::packaged_task (0) | 2024.12.18 |
댓글