Shared mutex
The <shared_mutex>
header was first added with the 2014 standard, by adding the shared_timed_mutex
class. With the 2017 standard, the shared_mutex
class was also added.
The shared mutex header has been present since C++17. In addition to the usual mutual exclusive access, this mutex
class adds the ability to provide shared access to the mutex. This allows one to, for example, provide read access to a resource by multiple threads, while a writing thread would still be able to gain exclusive access. This is similar to the read-write locks of Pthreads.
The functions added to this mutex type are the following:
lock_shared()
try_lock_shared()
unlock_shared()
The use of this mutex's share functionality should be fairly self-explanatory. A theoretically infinite number of readers can gain read access to the mutex, while ensuring that only a single thread can write to the resource at any time.
Shared timed mutex
This header has been present since C++14. It adds shared locking functionality...