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


Класс recursive_mutex

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

Синтаксис

class recursive_mutex;

Участники

Открытые конструкторы

Имя Описание
recursive_mutex Формирует объект recursive_mutex.
Деструктор ~recursive_mutex Освобождает все ресурсы, используемые объектом recursive_mutex.

Открытые методы

Имя Описание
lock Блокирует вызывающий поток до тех пор, пока этот поток не получит права владельца мьютекса.
try_lock Попытки получить права владельца мьютекса без блокировки.
unlock Освобождает права владения мьютексом.

Требования

Заголовок:<mutex>

Пространство имен: std

lock

Блокирует вызывающий поток до тех пор, пока этот поток не получит права владельца объекта mutex.

void lock();

Замечания

Если вызывающий поток уже владеет mutex, метод немедленно возвращает значение и предыдущая блокировка остается в силе.

recursive_mutex

Создает объект recursive_mutex, который не заблокирован.

recursive_mutex();

~recursive_mutex

Освобождает все ресурсы, используемые объектом .

~recursive_mutex();

Замечания

Если при выполнении деструктора объект заблокирован, поведение не определено.

try_lock

Попытки получить права владельца объекта mutex без блокировки.

bool try_lock() noexcept;

Возвращаемое значение

true Значение mutex или если вызывающий поток уже владеет mutex**; otherwise, **false.

Замечания

Если вызывающий поток уже владеет mutex, метод немедленно возвращает true и предыдущая блокировка остается в силе.

разблокировано

Освобождает права владения мьютексом.

void unlock();

Замечания

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

Если вызывающий поток не является владельцем mutex, поведение не определено.

См. также

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