Udostępnij za pośrednictwem


<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

lock_guard — Klasa

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

mutex — Klasa (STL)

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

recursive_mutex — Klasa

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.

recursive_timed_mutex — Klasa

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.

timed_mutex — Klasa

Reprezentuje typ obiektu mutex czasowym.Użyj obiektów tego typu, aby wymusić mutex, który ma ograniczony czas blokowania w programie.

unique_lock — Klasa

Reprezentuje szablonu, które mogą być utworzone do tworzenia obiektów, które zarządzają blokowanie i odblokowywanie z mutex.

Funkcje

Nazwa

Opis

call_once — Funkcja

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

lock — Funkcja

Próbuje zablokować wszystkie argumenty bez zakleszczenia.

Strukturach

Nazwa

Opis

adopt_lock_t — Struktura

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

defer_lock_t — Struktura

Reprezentuje typ definiujący defer_lock obiekt, który służy do wybierania jednego z konstruktorów przeciążone z unique_lock.

once_flag — Struktura

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.

try_to_lock_t — Struktura

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

adopt_lock — Zmienna

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.

defer_lock — Zmienna

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.

try_to_lock — Zmienna

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.

Zobacz też

Inne zasoby

Pliki nagłówkowe standardowej biblioteki języka C++