<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 тип.
Классы
Имя |
Описание |
---|---|
Представляет шаблон, можно создать для создания объекта деструктор которого опустить mutex. |
|
Представляет тип мьютекса.Используйте объекты этого типа для обеспечения взаимное исключение внутри программы. |
|
Представляет тип мьютекса.В constrast к классу mutex, расширение функциональности блокирован вызывать методы для объектов, которые уже блокированы чётко. |
|
Представляет синхронизированный тип мьютекса.Используйте объекты этого типа для обеспечения взаимное исключение, имеет ограниченную времени блокировки внутри программы.В отличие от объектов типа timed_mutex, результат блокирован вызывать методы для объектов recursive_timed_mutex чёток. |
|
Представляет синхронизированный тип мьютекса.Используйте объекты этого типа для обеспечения взаимное исключение, имеет ограниченную времени блокировки внутри программы. |
|
Представляет шаблон, можно создать для создания объектов, управляющих блокировать и разблокировать mutex. |
Функции
Имя |
Описание |
---|---|
Предоставляет механизм для вызова указанный объект может быть вызван только один раз во время выполнения. |
|
Пытается блокировать все аргументы без взаимоблокировки. |
Структуры
Имя |
Описание |
---|---|
Представляет тип, используемый для определения adopt_lock. |
|
Представляет тип, определяющий объект defer_lock, который используется для выбора одного из перегруженных конструкторов unique_lock. |
|
Представляет объект struct, используемый с шаблонной функцией call_once, чтобы убедиться, что код инициализации вызывается только один раз, даже при наличии блокирующих нескольких потоков выполнения. |
|
Представляет объект struct, определяющий объект try_to_lock и используется для выделения один из перегруженных конструкторов unique_lock. |
Переменные
Имя |
Описание |
---|---|
Представляет объект, который можно передать конструкторов для lock_guard и unique_lock, чтобы указать, что объект мьютексов, также передаются блокирует. |
|
Представляет объект, который может передаваться для unique_lock, чтобы указать, что конструктор не должен блокировать объект мьютексов, также передается в него. |
|
Представляет объект, который может передаваться для unique_lock, чтобы указать, что конструктор должен попытаться избежать mutex, также передают его без блокировки. |