Search⌘ K

Types of Locks: std::unique_lock

Explore how to use std::unique_lock in C++ to manage mutexes with advanced features like deferred locking, timed try-locks, and mutex ownership. Understand how combining std::unique_lock with std::lock resolves deadlocks by atomically locking multiple mutexes. Learn practical techniques to handle shared data safely in multithreaded applications.

Features

In addition to what’s offered by an std::lock_guard, an std::unique_lock enables us to:

  • create it without an associated mutex.
  • create it without locking the associated mutex.
  • explicitly and repeatedly set or release the lock of the associated mutex.
  • move the mutex.
  • try to lock the mutex.
  • delay the lock on the associated mutex.

Methods

The following table shows the methods of an std::unique_lock lk.

Method Description
lk.lock() Locks the associated mutex.
...