Sdílet prostřednictvím


recursive_mutex – třída

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.

Viz také

Referenční informace k souborům hlaviček
<mutex>