Sdílet prostřednictvím


<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.

Hh921467.collapse_all(cs-cz,VS.110).gifTřídy

Název

Description

Třída lock_guard

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

mutex Class (STL)

Představuje typ objektu mutex.Používat objekty tohoto typu k vynucení vzájemně vyloučený přístup v rámci programu.

Třída recursive_mutex

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.

Třída recursive_timed_mutex

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ý.

Třída timed_mutex

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.

Třída unique_lock

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

Hh921467.collapse_all(cs-cz,VS.110).gifFunkce

Název

Description

Funkce call_once

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

lock funkcei

Systém se pokusí uzamknout všechny argumenty bez vzájemného zablokování.

Hh921467.collapse_all(cs-cz,VS.110).gifStruktur

Název

Description

Struktura adopt_lock_t

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

Struktura defer_lock_t

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.

Struktura once_flag

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á.

Struktura try_to_lock_t

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.

Hh921467.collapse_all(cs-cz,VS.110).gifProměnné

Název

Description

adopt_lock proměnné

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.

defer_lock proměnné

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.

try_to_lock proměnné

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í.

Viz také

Další zdroje

Soubory hlaviček