mutex
class (Standardowa biblioteka C++)
Reprezentuje typ mutexu. Obiekty tego typu mogą służyć do wymuszania wzajemnego wykluczania w programie.
Składnia
class mutex;
Elementy członkowskie
Konstruktor publiczny/destruktor
Nazwa/nazwisko | opis |
---|---|
mutex |
mutex Tworzy obiekt. |
~mutex |
Zwalnia wszystkie zasoby, które były używane przez mutex obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
lock |
Blokuje wątek wywołujący do momentu uzyskania własności wątku mutex . |
native_handle |
Zwraca typ specyficzny dla implementacji reprezentujący uchwyt mutex. |
try_lock |
Próbuje uzyskać własność obiektu mutex bez blokowania. |
unlock |
Zwalnia własność obiektu mutex . |
Wymagania
Nagłówek: <mutex>
Przestrzeń nazw: std
lock
Blokuje wątek wywołujący do momentu uzyskania własności wątku mutex
.
void lock();
Uwagi
Jeśli wątek wywołujący jest już właścicielem mutex
, zachowanie jest niezdefiniowane.
Konstruktor
mutex
Tworzy obiekt, który nie jest zablokowany.
Przed programem Visual Studio 2022 17.10 implementacja tego konstruktora firmy Microsoft nie constexpr
była . Teraz jest to constexpr
.
mutex() noexcept;
Destruktor
Zwalnia wszystkie zasoby, które są używane przez mutex
obiekt.
~mutex();
Uwagi
Jeśli obiekt jest zablokowany po uruchomieniu destruktora, zachowanie jest niezdefiniowane.
native_handle
Zwraca typ specyficzny dla implementacji reprezentujący uchwyt mutex. Uchwyt mutex może być używany w sposób specyficzny dla implementacji.
native_handle_type native_handle();
Wartość zwracana
native_handle_type
element jest zdefiniowany jako .Concurrency::critical_section *
Jest obsadzony jako void *
.
try_lock
Próbuje uzyskać własność obiektu mutex
bez blokowania.
bool try_lock();
Wartość zwracana
true
jeśli metoda pomyślnie uzyskuje własność mutex
; w przeciwnym razie false
, .
Uwagi
Jeśli wątek wywołujący jest już właścicielem mutex
, zachowanie jest niezdefiniowane.
unlock
Zwalnia własność obiektu mutex
.
void unlock();
Uwagi
Jeśli wątek wywołujący nie jest właścicielem mutex
, zachowanie jest niezdefiniowane.