Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Представляет тип мьютекса. В отличие от класса 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**; otherwise, **false.
Замечания
Если вызывающий поток уже владеет mutex, метод немедленно возвращает true и предыдущая блокировка остается в силе.
разблокировано
Освобождает права владения мьютексом.
void unlock();
Замечания
Этот метод освобождает владение mutex только после его вызова столько раз, сколько lock и try_lock были успешно вызваны для объектаrecursive_mutex.
Если вызывающий поток не является владельцем mutex, поведение не определено.