mutex
class (стандартная библиотека C++)
Представляет тип мьютекса. Используйте объекты этого типа для принудительного взаимного исключения в программе.
Синтаксис
class mutex;
Участники
Открытый конструктор или деструктор
Имя | Описание |
---|---|
mutex |
Формирует объект mutex . |
~mutex |
Освобождает ресурсы, используемые объектом mutex . |
Открытые методы
Имя | Описание |
---|---|
lock |
Блокирует вызывающий поток до тех пор, пока этот поток не получит права владельца объекта mutex . |
native_handle |
Возвращает тип реализации, представляющий дескриптор мьютекса. |
try_lock |
Попытки получить права владельца объекта mutex без блокировки. |
unlock |
Освобождает права владения объектом mutex . |
Требования
Заголовок: <mutex>
Пространство имен: std
lock
Блокирует вызывающий поток до тех пор, пока этот поток не получит права владельца объекта mutex
.
void lock();
Замечания
Если вызывающий поток уже является владельцем mutex
, поведение не определено.
Конструктор
mutex
Создает объект, который не заблокирован.
До Visual Studio 2022 17.10 реализация этого конструктора не была constexpr
. Теперь это constexpr
.
mutex() noexcept;
Деструктор
Освобождает все ресурсы, используемые объектом mutex
.
~mutex();
Замечания
Если при выполнении деструктора объект заблокирован, поведение не определено.
native_handle
Возвращает тип реализации, представляющий дескриптор мьютекса. Дескриптор мьютекса может использоваться разными способами в зависимости от реализации.
native_handle_type native_handle();
Возвращаемое значение
native_handle_type
определяется как .Concurrency::critical_section *
Это приведение void *
как .
try_lock
Попытки получить права владельца объекта mutex
без блокировки.
bool try_lock();
Возвращаемое значение
Значение true
, если метод успешно получает права владельца mutex
; в противном случае — значение false
.
Замечания
Если вызывающий поток уже является владельцем mutex
, поведение не определено.
unlock
Освобождает права владения объектом mutex
.
void unlock();
Замечания
Если вызывающий поток не владеет mutex
, поведение не определено.