class mutex;
(since C++11)The mutex
class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.
mutex
offers exclusive, non-recursive ownership semantics:
mutex
from the time that it successfully calls either lock
or try_lock
until it calls unlock
.mutex
, all other threads will block (for calls to lock
) or receive a false return value (for try_lock
) if they attempt to claim ownership of the mutex
.mutex
prior to calling lock
or try_lock
.The behavior of a program is undefined if a mutex
is destroyed while still owned by any threads, or a thread terminates while owning a mutex
. The mutex
class satisfies all requirements of Mutex and StandardLayoutType.
std::mutex
is neither copyable nor movable.
native_handle_type
(optional*) implementation-defined[edit] [edit] Member functions constructs the mutex
std::mutex
is usually not accessed directly: std::unique_lock, std::lock_guard, or std::scoped_lock(since C++17) manage locking in a more exception-safe manner.
This example shows how a mutex
can be used to protect an std::map shared between two threads.
Output:
http://bar => fake content http://foo => fake content[edit] See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4