recursive_mutex — Klasa
Reprezentuje typ mutexu. W przeciwieństwie do mutex zachowanie wywołań do blokowania metod dla obiektów, które są już zablokowane, jest dobrze zdefiniowane.
Składnia
class recursive_mutex;
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
recursive_mutex | recursive_mutex Tworzy obiekt. |
~recursive_mutex Destruktor | Zwalnia wszystkie zasoby, które są używane przez recursive_mutex obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
lock | Blokuje wątek wywołujący, dopóki wątek nie uzyska własności mutexu. |
try_lock | Próbuje uzyskać własność mutexu bez blokowania. |
Odblokować | Zwalnia własność mutexu. |
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
metody , metoda zwraca natychmiast, a poprzednia blokada pozostaje w mocy.
recursive_mutex
recursive_mutex
Tworzy obiekt, który nie jest zablokowany.
recursive_mutex();
~recursive_mutex
Zwalnia wszystkie zasoby, które są używane przez obiekt.
~recursive_mutex();
Uwagi
Jeśli obiekt jest zablokowany po uruchomieniu destruktora, zachowanie jest niezdefiniowane.
try_lock
Próbuje uzyskać własność obiektu mutex
bez blokowania.
bool try_lock() noexcept;
Wartość zwracana
true
jeśli metoda pomyślnie uzyska własność elementu mutex
lub, jeśli wątek wywołujący jest już właścicielem mutex**; otherwise, **false
elementu .
Uwagi
Jeśli wątek wywołujący jest już właścicielem mutex
, funkcja natychmiast zwraca true
wartość , a poprzednia blokada pozostaje w mocy.
Odblokować
Zwalnia własność mutexu.
void unlock();
Uwagi
Ta metoda zwalnia własność mutex
tylko po wywołaniu jej tak wiele razy, jak blokada i try_lock zostały pomyślnie wywołane w recursive_mutex
obiekcie.
Jeśli wątek wywołujący nie jest właścicielem mutex
, zachowanie jest niezdefiniowane.