std::shared_mutex
From cppreference.com
Defined in header <mutex>
|
||
class shared_mutex; |
(since C++14) | |
The shared_mutex
class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads. Differently from other mutex types, there are two levels of access:
- shared - several threads can share ownership of the same mutex.
- exclusive - only one thread can own the mutex.
Shared mutexes are usually used in situations, when multiple readers can access the same resource at the same time without causing data races, but only one writer can do so.
In a manner similar to timed_mutex, shared_mutex
provides the ability to attempt to claim ownership of a shared_mutex
with a timeout via the try_lock_for(), try_lock_until(), try_lock_shared_for(), try_lock_shared_until() methods.
The shared_mutex
class is non-copyable.
[edit] Member functions
constructs the mutex (public member function) | |
Exclusive locking | |
locks the mutex, blocks if the mutex is not available (public member function) | |
tries to lock the mutex, returns if the mutex is not available (public member function) | |
tries to lock the mutex, returns if the mutex has been unavailable for the specified timeout duration (public member function) | |
tries to lock the mutex, returns if the mutex has been unavailable until specified time point has been reached (public member function) | |
unlocks the mutex (public member function) | |
| |
locks the mutex for shared ownership, blocks if the mutex is not available (public member function) | |
tries to lock the mutex for shared ownership, returns if the mutex is not available (public member function) | |
tries to lock the mutex for shared ownership, returns if the mutex has been unavailable for the specified timeout duration (public member function) | |
tries to lock the mutex for shared ownership, returns if the mutex has been unavailable until specified time point has been reached (public member function) | |
unlocks the mutex (shared ownership) (public member function) |