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 Создает объект, который не заблокирован.
Реализация этого конструктора майкрософт не 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, поведение не определено.

См. также

Справочник по файлам заголовков
<mutex>