Поделиться через


<mutex>

Включите стандартный заголовок <mutex> для определения классов mutex, recursive_mutex, timed_mutex и recursive_timed_mutex; шаблоны lock_guard и unique_lock; а также вспомогательные типы и функции, которые определяют области кода взаимн- исключения.

Этот заголовок используется среда выполнения с параллелизмом (ConcRT), чтобы можно было использовать его вместе с другими механизмами ConcRT.Дополнительные сведения о ConcRT см. в разделе Среда выполнения с параллелизмом.

#include <mutex>

Заметки

ПримечаниеПримечание

В коде, компилироваться с помощью /clr или /clr:pure, этот заголовок блокируется.

Классы mutex и recursive_mutexтипы мьютекса.Тип мьютекс имеет конструктор по умолчанию и деструктор, не вызывает исключения.Эти объекты имеют методы, предоставляющие взаимное исключение, когда несколько потоков пытаются блокировать один и тот же объект.В частности, тип мьютекс содержит методы lock, try_lock и unlock.

  • Метод lock блокирует вызывающий поток до тех пор, пока поток не получит владение мьютекса.Ее возвращаемое значение игнорируется.

  • Метод try_lock пытается получить мьютекс владения без блокировки.Возвращаемым типом преобразуемым к bool, и значение true в противном случае метод возвращает владельца, но в противном случае — значение false.

  • Выпуски метода unlock владельца мьютекс из вызывающего потока.

Мьютекс типы можно использовать в качестве аргументов типа для создания шаблонов lock_guard и unique_lock.Можно использовать объекты этого типа в качестве аргумента Lock к функциям элемента ожидания в шаблоне condition_variable_any.

Синхронизированный тип мьютекс удовлетворяет требованиям для типа мьютекса.Кроме того, он содержит методы try_lock_for и try_lock_until, которые должны быть можно вызвать с помощью одного аргумента и должен возвращать тип, преобразуемым к bool.Синхронизированный тип мьютекс может определить эти функции с помощью дополнительных аргументов, при условии, что эти дополнительные все аргументы имеют значения по умолчанию.

  • Метод try_lock_for должен быть можно вызвать с помощью одного аргумента Rel_time, тип которого создание chrono::duration.Метод пытается получить мьютекс владельца, но возвращает за время, обозначено Rel_time независимо от успеха.Возвращаемое значение может быть преобразовано в значение true, если метод получает владение; в противном случае возвращаемое значение может быть преобразовано в значение false.

  • Метод try_lock_until должен быть можно вызвать с помощью одного аргумента Abs_time, тип которого создание chrono::time_point.Метод пытается получить мьютекс владельца, но не возвращает позже, чем время, обозначено Abs_time независимо от успеха.Возвращаемое значение может быть преобразовано в значение true, если метод получает владение; в противном случае возвращаемое значение может быть преобразовано в значение false.

Тип мьютекс также как lockable тип.Если он не содержит функцию-член try_lock, базовый lockable тип.Синхронизированный тип мьютекс также в качестве временной lockable тип.

Hh921467.collapse_all(ru-ru,VS.110).gifКлассы

Имя

Описание

класс lock_guard

Представляет шаблон, можно создать для создания объекта деструктор которого опустить mutex.

mutex Class (STL)

Представляет тип мьютекса.Используйте объекты этого типа для обеспечения взаимное исключение внутри программы.

класс recursive_mutex

Представляет тип мьютекса.В constrast к классу mutex, расширение функциональности блокирован вызывать методы для объектов, которые уже блокированы чётко.

класс recursive_timed_mutex

Представляет синхронизированный тип мьютекса.Используйте объекты этого типа для обеспечения взаимное исключение, имеет ограниченную времени блокировки внутри программы.В отличие от объектов типа timed_mutex, результат блокирован вызывать методы для объектов recursive_timed_mutex чёток.

класс timed_mutex

Представляет синхронизированный тип мьютекса.Используйте объекты этого типа для обеспечения взаимное исключение, имеет ограниченную времени блокировки внутри программы.

класс unique_lock

Представляет шаблон, можно создать для создания объектов, управляющих блокировать и разблокировать mutex.

Hh921467.collapse_all(ru-ru,VS.110).gifФункции

Имя

Описание

функция call_once

Предоставляет механизм для вызова указанный объект может быть вызван только один раз во время выполнения.

lock Функцииi

Пытается блокировать все аргументы без взаимоблокировки.

Hh921467.collapse_all(ru-ru,VS.110).gifСтруктуры

Имя

Описание

структура adopt_lock_t

Представляет тип, используемый для определения adopt_lock.

структура defer_lock_t

Представляет тип, определяющий объект defer_lock, который используется для выбора одного из перегруженных конструкторов unique_lock.

структура once_flag

Представляет объект struct, используемый с шаблонной функцией call_once, чтобы убедиться, что код инициализации вызывается только один раз, даже при наличии блокирующих нескольких потоков выполнения.

структура try_to_lock_t

Представляет объект struct, определяющий объект try_to_lock и используется для выделения один из перегруженных конструкторов unique_lock.

Hh921467.collapse_all(ru-ru,VS.110).gifПеременные

Имя

Описание

переменная adopt_lock

Представляет объект, который можно передать конструкторов для lock_guard и unique_lock, чтобы указать, что объект мьютексов, также передаются блокирует.

переменная defer_lock

Представляет объект, который может передаваться для unique_lock, чтобы указать, что конструктор не должен блокировать объект мьютексов, также передается в него.

переменная try_to_lock

Представляет объект, который может передаваться для unique_lock, чтобы указать, что конструктор должен попытаться избежать mutex, также передают его без блокировки.

См. также

Другие ресурсы

Файлы заголовков