recursive_timed_mutex — Klasa

Reprezentuje czasowy typ mutexu. Obiekty tego typu są używane do wymuszania wzajemnego wykluczania przy użyciu blokowania ograniczonego czasowo w programie. W przeciwieństwie do obiektów typu timed_mutex, efekt wywoływania metod blokowania obiektów recursive_timed_mutex jest dobrze zdefiniowany.

Składnia

class recursive_timed_mutex;

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
recursive_timed_mutex recursive_timed_mutex Tworzy obiekt, który nie jest zablokowany.
~recursive_timed_mutex Destruktor Zwalnia wszystkie zasoby, które są używane przez recursive_timed_mutex obiekt.

Metody publiczne

Nazwa/nazwisko opis
lock Blokuje wątek wywołujący do momentu uzyskania własności wątku mutex.
try_lock Próbuje uzyskać własność obiektu mutex bez blokowania.
try_lock_for Próbuje uzyskać własność mutex obiektu dla określonego przedziału czasu.
try_lock_until Próbuje uzyskać własność obiektu mutex do określonego czasu.
Odblokować 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 mutexmetody , metoda zwraca natychmiast, a poprzednia blokada pozostaje w mocy.

konstruktor recursive_timed_mutex

recursive_timed_mutex Tworzy obiekt, który nie jest zablokowany.

recursive_timed_mutex();

~recursive_timed_mutex Destruktor

Zwalnia wszystkie zasoby, które są używane przez recursive_timed_mutex obiekt.

~recursive_timed_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ła własność elementu mutex lub, jeśli wątek wywołujący jest już właścicielem mutex; w przeciwnym razie false.

Uwagi

Jeśli wątek wywołujący jest już właścicielem mutex, funkcja natychmiast zwraca truewartość , a poprzednia blokada pozostaje w mocy.

try_lock_for

Próbuje uzyskać własność obiektu mutex bez blokowania.

template <class Rep, class Period>
bool try_lock_for(const chrono::duration<Rep, Period>& Rel_time);

Parametry

Rel_time
Obiekt chrono::d uration określający maksymalny czas próby uzyskania własności obiektu mutex.

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; w przeciwnym razie false.

Uwagi

Jeśli wątek wywołujący jest już właścicielem mutexmetody , metoda natychmiast zwraca truewartość , a poprzednia blokada pozostaje w mocy.

try_lock_until

Próbuje uzyskać własność obiektu mutex bez blokowania.

template <class Clock, class Duration>
bool try_lock_for(const chrono::time_point<Clock, Duration>& Abs_time);

bool try_lock_until(const xtime* Abs_time);

Parametry

Abs_time
Punkt w czasie określający próg, po którym metoda nie próbuje już uzyskać własności obiektu mutex.

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; w przeciwnym razie false.

Uwagi

Jeśli wątek wywołujący jest już właścicielem mutexmetody , metoda natychmiast zwraca truewartość , a poprzednia blokada pozostaje w mocy.

Odblokować

Zwalnia własność obiektu mutex.

void unlock();

Uwagi

Ta metoda zwalnia własność mutex tylko po wywołaniu jej tak wiele razy, jak blokada, try_lock, try_lock_for i try_lock_until zostały pomyślnie wywołane w recursive_timed_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>