Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Představuje typ mutex. Na rozdíl od mutex je chování volání k uzamčení metod pro objekty, které jsou již uzamčeny, dobře definován.
Syntaxe
class recursive_mutex;
Členové
Veřejné konstruktory
| Název | Popis |
|---|---|
| recursive_mutex | recursive_mutex Vytvoří objekt. |
| ~recursive_mutex Destruktor | Uvolní všechny prostředky, které objekt používá recursive_mutex . |
Veřejné metody
| Název | Popis |
|---|---|
| lock | Blokuje volající vlákno, dokud vlákno nezískne vlastnictví mutexu. |
| try_lock | Pokusí se získat vlastnictví mutexu bez blokování. |
| odemknout | Uvolní vlastnictví mutexu. |
Požadavky
Header:<mutex>
Obor názvů: std
lock
Blokuje volající vlákno, dokud vlákno nezískne vlastnictví mutex.
void lock();
Poznámky
Pokud volající vlákno již vlastní mutex, metoda vrátí okamžitě a předchozí zámek zůstane v platnosti.
recursive_mutex
recursive_mutex Vytvoří objekt, který není uzamčen.
recursive_mutex();
~recursive_mutex
Uvolní všechny prostředky, které objekt používá.
~recursive_mutex();
Poznámky
Pokud je objekt uzamčen při spuštění destruktoru, chování není definováno.
try_lock
Pokusí se získat vlastnictví mutex bez blokování.
bool try_lock() noexcept;
Návratová hodnota
true pokud metoda úspěšně získá vlastnictví mutex nebo pokud volající vlákno již vlastní mutex**; otherwise, **false.
Poznámky
Pokud volající vlákno již vlastní mutex, funkce okamžitě vrátí truea předchozí zámek zůstane v platnosti.
odemknout
Uvolní vlastnictví mutexu.
void unlock();
Poznámky
Tato metoda uvolní vlastnictví mutex pouze poté, co je volána tolikrát, kolikrát je zámek a try_lock byly v objektu recursive_mutex úspěšně volána.
Pokud volající vlákno nevlastní mutex, chování není definováno.