Sdílet prostřednictvím


<mutex>

Zahrnout standardní záhlaví <mutex> lze definovat třídy mutex, recursive_mutex, timed_mutex, a recursive_timed_mutex; šablony lock_guard a unique_lock; a podpůrné typy a funkce, které určují vzájemné vyloučení kód oblasti.

Toto hlavička používá modul Concurrency Runtime (ConcRT), takže ji lze použít společně s jinými mechanismy modulu ConcRT.Další informace o modulu ConcRT naleznete v tématu Concurrency Runtime.

#include <mutex>

Poznámky

[!POZNÁMKA]

V kódu, který je zkompilován s použitím možností /clr nebo /clr:pure je tato hlavička blokována.

Třídy mutex a recursive_mutex jsou mutex typy.Typ objektu mutex nemá výchozí konstruktor a destruktor není vyvoláním výjimky.Tyto objekty mají metody, které poskytují vzájemné vyloučení při více podprocesů pokusit uzamknout stejný objekt.Konkrétně obsahuje typ objektu mutex metody lock, try_lock, a unlock:

  • lock Metoda blokuje volající vlákno, dokud podproces získá vlastnictví mutex.Vrácená hodnota je ignorována.

  • try_lock Metoda pokusí získat vlastnictví mutex bez blokování.Jeho návratový typ je převést na bool a true metoda získá vlastnictví, ale jinak false.

  • unlock Metody uvolnění vlastnictví objektu mutex z volajícího vlákna.

Vytvoření instance šablony můžete použít mutex typů jako argumenty typu lock_guard a unique_lock.Můžete použít objekty těchto typů jako Lock argument Čekání členské funkce v šabloně condition_variable_any.

A typu mutex timed splňuje požadavky pro typ objektu mutex.Kromě toho má try_lock_for a try_lock_until metody, které musí být možné volat pomocí argumentů a musí vrátit typ, který je převést na bool.Časované mutex typ můžete definovat tyto funkce pomocí další argumenty, za předpokladu, že tyto další argumenty všechny výchozí hodnoty.

  • try_lock_for Metody musí být volány pomocí jeden argument, Rel_time, jejíž typ je instanci z chrono::duration.Metoda pokusí o získání vlastnictví objektu mutex, ale vrátí v čase, který je označen Rel_time, bez ohledu na úspěch.Vrácená hodnota se převede na true Pokud metoda získá vlastnictví; jinak převede hodnotu vrácenou false.

  • try_lock_until Metody musí být volány pomocí jeden argument, Abs_time, jejíž typ je instanci z chrono::time_point.Metoda pokusí o získání vlastnictví objektu mutex, ale vrátí nejpozději do času, který je určen pomocí Abs_time, bez ohledu na úspěch.Vrácená hodnota se převede na true Pokud metoda získá vlastnictví; jinak převede hodnotu vrácenou false.

Typ objektu mutex je známá také jako uzamykatelnou typ.Pokud nestanoví členské funkce try_lock, je základní typ uzamykatelnou.Typ limitu mutex je známá také jako timed uzamykatelnou typ.

Třídy

Name

Popis

lock_guard – třída

Představuje šablonu, která může být vytvořena pro vytvoření objektu, jehož destruktor odemkne mutex.

mutex – třída (STL)

Představuje typ mutex.Používat objekty tohoto typu k zajištění vzájemné vyloučení aplikace.

recursive_mutex – třída

Představuje typ mutex.V constrast pro mutex třída, je dobře definované chování volání metod zamykání pro objekty, které jsou již uzamčen.

recursive_timed_mutex – třída

Představuje typ časových mutex.Používat objekty tohoto typu k zajištění vzájemné vyloučení, která má časově omezené blokování programu.Na rozdíl od objektů typu timed_mutex, volání metod zamykání pro efekt recursive_timed_mutex objekty je dobře definovaný.

timed_mutex – třída

Představuje typ časových mutex.Používat objekty tohoto typu k zajištění vzájemné vyloučení, která má časově omezené blokování programu.

unique_lock – třída

Představuje šablonu, která může být vytvořena pro vytvoření objektů, které spravují zamykání a odemykání mutex.

Funkce

Name

Popis

call_once – funkce

Poskytuje mechanismus pro volání zadaný callable objekt právě jednou při spuštění.

lock – funkce

Pokusy o uzamknutí všech argumentů bez zablokování.

Struktury

Name

Popis

adopt_lock_t – struktura

Představuje typ, který se používá k definování adopt_lock.

defer_lock_t – struktura

Představuje typ, který definuje defer_lock objekt, který se používá k výběru jednoho z přetížených konstruktorů unique_lock.

once_flag – struktura

Představuje struct , které slouží funkce šablony call_once zajistit, že inicializace kód je volán pouze jednou, dokonce i za přítomnosti více podprocesů spuštění.

try_to_lock_t – struktura

Představuje struct definující try_to_lock objekt a slouží k výběru jednoho z přetížených konstruktorů unique_lock.

Proměnné

Name

Popis

adopt_lock – proměnná

Představuje objekt, který může být předán konstruktory pro lock_guard a unique_lock označíte, že objekt mutex, který je rovněž předána konstruktoru je uzamčen.

defer_lock – proměnná

Představuje objekt, který lze předat konstruktoru unique_lock, označíte, že konstruktoru by neměl zamknout objekt mutex, který je rovněž předána jeho.

try_to_lock – proměnná

Představuje objekt, který lze předat konstruktoru unique_lock označíte, že konstruktor pokuste se odemknout mutex , také se mu byl předán bez blokování.

Viz také

Další zdroje

Standardní knihovna C++ – hlavičkové soubory