Last Updated: June 6, 2026
When two threads write to the same variable without coordination, the program can produce wrong results, crash, or corrupt data. A mutex (short for "mutual exclusion") is the standard tool C++ provides to serialize access to shared state, so only one thread at a time runs the critical section. This chapter covers std::mutex and its companions, the RAII wrappers std::lock_guard and std::unique_lock, the read-heavy variant std::shared_mutex (C++17), the rarely needed std::recursive_mutex, and the timed variants. Deadlock prevention and multi-mutex locking live in the next chapter.