Udostępnij za pośrednictwem


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

Hh921467.collapse_all(pl-pl,VS.110).gifKlasy

Nazwa

Opis

Klasa lock_guard

Reprezentuje szablon, który może być utworzone do tworzenia obiektu, którego destruktora odblokowuje mutex.

mutex Class (STL)

Reprezentuje typ obiektu mutex.Użyj obiektów tego typu, aby wymusić mutex w ramach programu.

Klasa recursive_mutex

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.

Klasa recursive_timed_mutex

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.

Klasa timed_mutex

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.

Klasa unique_lock

Reprezentuje szablon, który może być utworzone do tworzenia obiektów, które zarządzają blokowanie i odblokowywanie z mutex.

Hh921467.collapse_all(pl-pl,VS.110).gifFunkcje

Nazwa

Opis

Funkcja call_once

Udostępnia mechanizm wywoływania określonego nieopłacona obiektu tylko raz podczas wykonywania.

lock Funkcje

Próbuje zablokować wszystkie argumenty bez zakleszczenia.

Hh921467.collapse_all(pl-pl,VS.110).gifStrukturach

Nazwa

Opis

Struktura adopt_lock_t

Reprezentuje typ, który jest używany do definiowania adopt_lock.

Struktura defer_lock_t

Reprezentuje typ, który definiuje defer_lock obiekt, który służy do wybierania jednego z przeciążone konstruktory unique_lock.

Struktura once_flag

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.

Struktura try_to_lock_t

Reprezentuje struct , definiująca try_to_lock object i służy do wybierania jednego z przeciążone konstruktory unique_lock.

Hh921467.collapse_all(pl-pl,VS.110).gifZmienne

Nazwa

Opis

Zmienna adopt_lock

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.

Zmienna defer_lock

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.

Zmienna try_to_lock

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.

Zobacz też

Inne zasoby

Pliki nagłówków