<mutex>
Obejmować standardowy nagłówek <mutex> to define the classes mutex, recursive_mutex, timed_mutex, and recursive_timed_mutex; szablony lock_guard i unique_lock; i wspieranie typów oraz funkcji definiujących regiony kodu wzajemne wykluczenie.
Nagłówek ten używa współbieżności Runtime (ConcRT) tak, aby można go używać wraz z innych mechanizmów ConcRT.Aby uzyskać więcej informacji na temat ConcRT, zobacz Współbieżność Runtime.
#include <mutex>
Uwagi
[!UWAGA]
W kodzie, który jest kompilowana przy użyciu /clr lub /clr:pure, ten nagłówek jest zablokowany.
Klasy mutex i recursive_mutex są typów muteksu.Typ obiektu mutex ma domyślnego konstruktora i destruktora, które nie generują wyjątki.Te obiekty mają metod, które zapewniają wzajemne wykluczanie, 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łujący 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 jest true Jeśli metoda uzyskuje własność, ale zostanie w inny sposób false.
unlock Metoda zwalnia własności obiektu mutex niż wątek wywołujący.
Typy muteksu 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 do funkcji składowych oczekiwania w szablonie condition_variable_any.
A timed typu obiektu mutex spełnia wymogi dla typu obiektu mutex.Ponadto ma try_lock_for i try_lock_until metod, które muszą być wpłacone za pomocą jednego argumentu i musi zwracać typ, który jest konwertowany na bool.Typ obiektu mutex odstępach czasu można zdefiniować te funkcje za pomocą dodatkowych argumentów, pod warunkiem że wszystkie te dodatkowe argumenty mają wartości domyślne.
try_lock_for Metoda musi być wpłacone za pomocą jednego argumentu Rel_time, którego typem jest podczas tworzenia wystąpienia z chrono::duration.Metoda próbuje uzyskać własności obiektu mutex, ale zwraca w terminie wyznaczonym przez Rel_time, niezależnie od powodzenia.Wartość zwracana jest konwertowany na true Jeśli metoda uzyskuje własność; w przeciwnym wypadku zwracana wartość jest konwertowany na false.
try_lock_until Metoda musi być wpłacone za pomocą jednego argumentu Abs_time, którego typem jest podczas tworzenia wystąpienia z chrono::time_point.Metoda próbuje uzyskać własności obiektu mutex, lecz nie później niż do czasu, określony przez zwraca Abs_time, niezależnie od powodzenia.Wartość zwracana jest konwertowany na true Jeśli metoda uzyskuje własność; w przeciwnym wypadku zwracana wartość jest konwertowany na false.
Typ obiektu mutex jest również znany jako typu zamykane na klucz.Jeśli nie oferuje funkcji składowej try_lock, jest Typ zamykane na klucz podstawowy.Typ obiektu mutex odstępach czasu jest również znany jako timed zamykane na klucz typu.
Klasy
Nazwa |
Opis |
---|---|
Reprezentuje szablon, który może być utworzone do tworzenia obiektu, którego destruktora odblokowuje mutex. |
|
Reprezentuje typ obiektu mutex.Użyj obiektów tego typu, aby wymusić mutex w ramach programu. |
|
Reprezentuje typ 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 odstępach czasu.Użyj obiektów tego typu w celu wymuszenia wzajemnego wykluczania, który ma ograniczone w czasie blokowania w programie.W przeciwieństwie do obiektów typu timed_mutex, efekt wywoływania metod blokowania dla recursive_timed_mutex obiektów jest wyraźnie określone. |
|
Reprezentuje typ obiektu mutex odstępach czasu.Użyj obiektów tego typu w celu wymuszenia wzajemnego wykluczania, który ma ograniczone w czasie blokowania w programie. |
|
Reprezentuje szablon, który może być utworzone do tworzenia obiektów, które zarządzają blokowanie i odblokowywanie z mutex. |
Funkcje
Nazwa |
Opis |
---|---|
Udostępnia mechanizm wywoływania 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, który definiuje defer_lock obiekt, który służy do wybierania jednego z przeciążone konstruktory unique_lock. |
|
Reprezentuje struct które jest używane z funkcją szablonu call_once do zapewnienia, że inicjowanie kodu jest wywoływana tylko raz, nawet w obecności wielu wykonywanych wątków. |
|
Reprezentuje struct , definiująca try_to_lock object i służy do wybierania jednego z przeciążone konstruktory unique_lock. |
Zmienne
Nazwa |
Opis |
---|---|
Reprezentuje obiekt, który można przekazać do konstruktorów lock_guard i unique_lock do wskazania, że obiekt muteksu, który również jest przekazywany do konstruktora jest zablokowany. |
|
Reprezentuje obiekt, który może zostać przekazany do konstruktora dla unique_lock, aby wskazać, że konstruktora nie powinna zablokować obiekt muteksu, który również jest przesyłane do niego. |
|
Reprezentuje obiekt, który może zostać przekazany do konstruktora dla unique_lock do wskazania, że konstruktora należy starać się odblokować mutex który jest również przesyłane do niego bez blokowania. |