<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 |
---|---|
Představuje šablonu, která může být vytvořena pro vytvoření objektu, jehož destruktor odemkne mutex. |
|
Představuje typ mutex.Používat objekty tohoto typu k zajištění vzájemné vyloučení aplikace. |
|
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. |
|
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ý. |
|
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. |
|
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 |
---|---|
Poskytuje mechanismus pro volání zadaný callable objekt právě jednou při spuštění. |
|
Pokusy o uzamknutí všech argumentů bez zablokování. |
Struktury
Name |
Popis |
---|---|
Představuje typ, který se používá k definování adopt_lock. |
|
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. |
|
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í. |
|
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 |
---|---|
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. |
|
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. |
|
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í. |