<mutex>
Obejmować standardowy nagłówek <obiektu mutex> do definiowania klas mutex, recursive_mutex, timed_mutex, i recursive_timed_mutex; szablony lock_guard i unique_lock; i wspieranie typy i funkcje definiujących regionów wzajemne wykluczenie kodu.
Nagłówek ten używa współbieżność Runtime (ConcRT) tak, aby można go było używać razem z innymi mechanizmami ConcRT.Aby uzyskać więcej informacji o ConcRT, zobacz Współbieżność środowiska wykonawczego.
#include <mutex>
Uwagi
[!UWAGA]
W kodzie, który jest kompilowany przy użyciu /clr lub /clr:pure, Nagłówek ten jest zablokowany.
Klasy mutex i recursive_mutex są obiektu mutex typy.Typ obiektu mutex ma konstruktora domyślnego i destruktor, które nie generują wyjątki.Te obiekty mają metodami, które zapewniają wzajemne wykluczenie, gdy wiele wątków próbuje zablokować tego samego obiektu.W szczególności, typ obiektu mutex zawiera metody lock, try_lock, i unlock:
lock Metoda blokuje wywołania wątek, aż wątek uzyskuje własność obiektu mutex.Jego wartość zwracana jest ignorowana.
try_lock Metoda próbuje uzyskać własności obiektu mutex bez blokowania.Typ zwracanej jest konwertowany na bool i true Jeśli metoda uzyskuje własność, ale jest inaczej false.
unlock Metoda zwalnia własności obiektu mutex z wywołania wątku.
Typy obiektu mutex jako argumentów typu służy do tworzenia wystąpienia szablony lock_guard i unique_lock.Za pomocą obiektów tego typu jako Lock argument funkcji elementów członkowskich oczekiwania w szablonie condition_variable_any.
A timed typ obiektu mutex spełnia wymogi dla typu obiektu mutex.Ponadto, ma on try_lock_for i try_lock_until metod, które musi być wpłacone przy użyciu jednego argumentu i musi zwracać typ, który jest konwertowany na bool.Typ obiektu mutex timed można zdefiniować te funkcje za pomocą dodatkowych argumentów, pod warunkiem, że te wszystkie dodatkowe argumenty mają wartości domyślne.
try_lock_for Metoda musi być wpłacone przy użyciu jednego argumentu Rel_time, którego typem jest egzemplarz z chrono::duration.Metoda próbuje uzyskać własności obiektu mutex, ale zwraca się w terminie wyznaczonym przez Rel_time, niezależnie od powodzenia.Zwracana wartość jest konwertowany na true Jeśli metoda uzyskuje własność; w przeciwnym wypadku wartość zwracana jest konwertowany na false.
try_lock_until Metoda musi być wpłacone przy użyciu jednego argumentu Abs_time, którego typem jest egzemplarz z chrono::time_point.Metoda próbuje uzyskać własności obiektu mutex, lecz nie później niż w czasie, który jest wyznaczony przez zwraca Abs_time, niezależnie od powodzenia.Zwracana wartość jest konwertowany na true Jeśli metoda uzyskuje własność; w przeciwnym wypadku wartość zwracana jest konwertowany na false.
Typ obiektu mutex jest również znany jako typu zamykane na klucz.Jeśli nie oferuje funkcji członka try_lock, to Typ zamykane na klucz podstawowy.Typ obiektu mutex czasowych jest również znany jako timed zamykane typu.
Klasy
Nazwa |
Opis |
---|---|
Reprezentuje szablonu, który może być utworzone do tworzenia obiektu, którego destruktora odblokowuje mutex. |
|
Reprezentuje typu obiektu mutex.Użyj obiektów tego typu, aby wymusić mutex w ramach programu. |
|
Reprezentuje typu obiektu mutex.W constrast do mutex klasy, zachowanie wywoływania metod blokowania dla obiektów, które są już zablokowane jest wyraźnie określone. |
|
Reprezentuje typ obiektu mutex czasowym.Użyj obiektów tego typu, aby wymusić mutex, który ma ograniczony czas blokowania w programie.W przeciwieństwie do obiektów typu timed_mutex, wywołanie metody blokowania efekt recursive_timed_mutex obiektów jest dobrze zdefiniowana. |
|
Reprezentuje typ obiektu mutex czasowym.Użyj obiektów tego typu, aby wymusić mutex, który ma ograniczony czas blokowania w programie. |
|
Reprezentuje szablonu, które mogą być utworzone do tworzenia obiektów, które zarządzają blokowanie i odblokowywanie z mutex. |
Funkcje
Nazwa |
Opis |
---|---|
Udostępnia mechanizm wywołanie określonego nieopłacona obiektu tylko raz podczas wykonywania. |
|
Próbuje zablokować wszystkie argumenty bez zakleszczenia. |
Strukturach
Nazwa |
Opis |
---|---|
Reprezentuje typ, który jest używany do definiowania adopt_lock. |
|
Reprezentuje typ definiujący defer_lock obiekt, który służy do wybierania jednego z konstruktorów przeciążone z unique_lock. |
|
Reprezentuje struct który jest używana razem z funkcją szablon call_once do zapewnienia, że inicjalizacji kod jest wywoływana tylko raz, nawet w obecności wielu wątków. |
|
Reprezentuje struct , definiująca try_to_lock object i służy do wybierania jednego z konstruktorów przeciążone z unique_lock. |
Zmienne
Nazwa |
Opis |
---|---|
Reprezentuje obiekt, który może zostać przekazany do konstruktory lock_guard i unique_lock do wskazania, że obiekt mutex, który jest również przekazywany do konstruktora jest zablokowany. |
|
Reprezentuje obiekt, który może zostać przekazany do konstruktora dla unique_lock, aby wskazać, że konstruktora nie powinien być blokowany obiektu mutex, który jest również przekazywany do niego. |
|
Reprezentuje obiekt, który może zostać przekazany do konstruktora dla unique_lock do wskazania konstruktora należy spróbować otworzyć mutex który jest również przesyłane do niego bez blokowania. |