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