<mutex>
Zahrnout standardní záhlaví <mutex> to define the classes mutex, recursive_mutex, timed_mutex, and recursive_timed_mutex; šablony lock_guard a unique_lock; a podpůrné typy a funkce, které definují vzájemné vyloučení kód oblasti.
Toto záhlaví používá Concurrency Runtime (ConcRT), takže jej můžete použít společně s jinými mechanismy ConcRT.Další informace o ConcRT naleznete v tématu Souběžnost Runtime.
#include <mutex>
Poznámky
[!POZNÁMKA]
V kódu, který je zkompilován s použitím /clr nebo /clr:pure, toto záhlaví je blokován.
Třídy mutex a recursive_mutex jsou mutex typy.Typ objektu mutex nemá výchozí konstruktor a destruktor, který není vyvolat výjimky.Tyto objekty mají metody, které poskytují vzájemně vyloučený přístup v případě, že více vláken pokusit uzamknout stejný objekt.Konkrétně obsahuje typ objektu mutex metody lock, try_lock, a unlock:
lock Metoda blokuje volající vlákno, dokud vlákno získá vlastnictví objektu mutex.Vrácená hodnota je ignorována.
try_lock Metoda se pokusí získat vlastnictví objektu mutex bez blokování.Jeho návratový typ je převést na bool a true je-li metoda získá vlastnictví, ale jinak false.
unlock Metoda uvolní vlastnictví objektu mutex z volajícího vlákna.
Mutex typů jako argumenty typu můžete použít k vytvoření instance šablony 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 timed mutex typ splňuje požadavky pro typ objektu mutex.Kromě toho má try_lock_for a try_lock_until metod, které musí být možné volat pomocí jeden argument a musí vracet typ, který je převést na bool.Časované mutex typ můžete definovat tyto funkce pomocí další argumenty, za předpokladu, že mají tyto další argumenty, které jsou všechny výchozí hodnoty.
try_lock_for Metody musí být volány pomocí jeden argument, Rel_time, jejíž typ je vytvoření instance z chrono::duration.Metoda pokusí o získání vlastnictví objektu mutex, ale vrací ve lhůtě, kterou vybraly Rel_time, bez ohledu na úspěch.Vrácená hodnota bude převedena na true je-li metoda získá vlastnictví; jinak, vrácená hodnota bude převedena na false.
try_lock_until Metody musí být volány pomocí jeden argument, Abs_time, jejíž typ je vytvoření instance z chrono::time_point.Metoda pokusí o získání vlastnictví objektu mutex, ale vrátí nejpozději v době, kterou vybraly Abs_time, bez ohledu na úspěch.Vrácená hodnota bude převedena na true je-li metoda získá vlastnictví; jinak, vrácená hodnota bude převedena na false.
Typ objektu mutex se také nazývá uzamykatelnou typ.Je-li neposkytuje členskou funkci try_lock, je základní typ uzamykatelnou.Typ limitu mutex se také nazývá timed uzamykatelnou typ.
Třídy
Název |
Description |
---|---|
Představuje šablonu, která může být vytvořena pro vytvoření objektu, jehož destruktor odemkne mutex. |
|
Představuje typ objektu mutex.Používat objekty tohoto typu k vynucení vzájemně vyloučený přístup v rámci programu. |
|
Představuje typ objektu mutex.V constrast se mutex třída, je dobře definované chování volání metod zamykání pro objekty, které již nejsou uzamčeny. |
|
Představuje typ časových mutex.Používat objekty tohoto typu k vynucení vzájemně vyloučený přístup, který má časově omezené blokování v rámci programu.Na rozdíl od objektů typu timed_mutex, účinek volání uzamčení metod pro recursive_timed_mutex objektů je dobře definovaný. |
|
Představuje typ časových mutex.Používat objekty tohoto typu k vynucení vzájemně vyloučený přístup, který má časově omezené blokování v rámci programu. |
|
Představuje šablonu, která může být vytvořena pro vytvoření objektů, které spravují zamykání a odemykání mutex. |
Funkce
Název |
Description |
---|---|
Poskytuje mechanismus pro volání zadaný callable objekt právě jednou při spuštění. |
|
Systém se pokusí uzamknout všechny argumenty bez vzájemného zablokování. |
Struktur
Název |
Description |
---|---|
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ů z unique_lock. |
|
Představuje struct , je použita s funkcí šablony call_once Chcete-li zajistit, že inicializační kód se nazývá pouze jednou, i za přítomnosti více vláken, která. |
|
Představuje struct definující try_to_lock objektu a se používá k výběru jednoho z přetížených konstruktorů z unique_lock. |
Proměnné
Název |
Description |
---|---|
Představuje objekt, který lze předat konstruktory pro lock_guard a unique_lock k označení, že objekt mutex, který je také předán konstruktoru je uzamčen. |
|
Reprezentuje objekt, který lze předat do konstruktoru pro unique_lock, označující, že konstruktoru by neměly uzamknout objekt mutex, který je také předávány k němu. |
|
Reprezentuje objekt, který lze předat do konstruktoru pro unique_lock k označení, že se pokuste odemknout konstruktoru mutex , je také předávány k němu bez blokování. |