mutex
class (C++ Standard Library)
Represents a mutex type. Objects of this type can be used to enforce mutual exclusion within a program.
Syntax
class mutex;
Members
Public constructor/destructor
Name | Description |
---|---|
mutex |
Constructs a mutex object. |
~mutex |
Releases any resources that were used by the mutex object. |
Public methods
Name | Description |
---|---|
lock |
Blocks the calling thread until the thread obtains ownership of the mutex . |
native_handle |
Returns the implementation-specific type that represents the mutex handle. |
try_lock |
Attempts to obtain ownership of the mutex without blocking. |
unlock |
Releases ownership of the mutex . |
Requirements
Header: <mutex>
Namespace: std
lock
Blocks the calling thread until the thread obtains ownership of the mutex
.
void lock();
Remarks
If the calling thread already owns the mutex
, the behavior is undefined.
Constructor
Constructs a mutex
object that isn't locked.
Before Visual Studio 2022 17.10, Microsoft's implementation of this constructor wasn't constexpr
. Now it's constexpr
.
mutex() noexcept;
Destructor
Releases any resources that are used by the mutex
object.
~mutex();
Remarks
If the object is locked when the destructor runs, the behavior is undefined.
native_handle
Returns the implementation-specific type that represents the mutex handle. The mutex handle can be used in implementation-specific ways.
native_handle_type native_handle();
Return Value
native_handle_type
is defined as a Concurrency::critical_section *
. It's cast as void *
.
try_lock
Attempts to obtain ownership of the mutex
without blocking.
bool try_lock();
Return value
true
if the method successfully obtains ownership of the mutex
; otherwise, false
.
Remarks
If the calling thread already owns the mutex
, the behavior is undefined.
unlock
Releases ownership of the mutex
.
void unlock();
Remarks
If the calling thread doesn't own the mutex
, the behavior is undefined.