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;

Członkowie

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 mutexmetody , 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, **falseelementu .

Uwagi

Jeśli wątek wywołujący jest już właścicielem mutex, funkcja natychmiast zwraca truewartość , 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.

Zobacz też

Odwołanie do plików nagłówka
<Mutex>