Search⌘ K

Mutex Types and Locking Methods

Explore the different mutex types in C++, such as recursive, timed, and shared mutexes, and understand locking techniques for managing shared data safely in multithreaded programs. Learn how to use std::shared_timed_mutex and std::shared_mutex for exclusive and shared locks, and discover the functions for locking with or without time constraints.

C++ has five different mutexes that can lock recursively (i.e., multiple layers of locking), tentative with and without time constraints.

Method mutex recursive_mutex timed_mutex recursive_timed_mutex shared_timed_mutex
m.lock yes yes yes yes yes
m.unlock yes yes yes yes yes
m.try_lock yes yes yes
...