Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 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.