A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../memory/../thread/mutex.html below:

std::mutex - cppreference.com

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:

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.

[edit] Nested types Name Definition native_handle_type (optional*) implementation-defined[edit] [edit] Member functions constructs the mutex
(public member function) [edit] destroys the mutex
(public member function) [edit] not copy-assignable
(public member function) [edit] Locking locks the mutex, blocks if the mutex is not available
(public member function) [edit] tries to lock the mutex, returns if the mutex is not available
(public member function) [edit] unlocks the mutex
(public member function) [edit] Native handle returns the underlying implementation-defined native handle object
(public member function) [edit] [edit] Notes

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.

[edit] Example

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