Класс timed_mutex
Представляет тип мьютекса с ограничением по времени. Используйте объекты этого типа для принудительного взаимного исключения с помощью ограниченной по времени блокировки в программе.
Синтаксис
class timed_mutex;
Участники
Открытые конструкторы
Имя | Описание |
---|---|
timed_mutex | Создает объект timed_mutex , который не заблокирован. |
Деструктор timed_mutex::~timed_mutex | Освобождает все ресурсы, используемые объектом timed_mutex . |
Открытые методы
Имя | Описание |
---|---|
lock | Блокирует вызывающий поток до тех пор, пока этот поток не получит права владельца объекта mutex . |
try_lock | Попытки получить права владельца объекта mutex без блокировки. |
try_lock_for | Пытается получить права владельца mutex на заданный интервал времени. |
try_lock_until | Пытается получить права владельца mutex до заданного времени. |
unlock | Освобождает права владения объектом mutex . |
Требования
Заголовок:<mutex>
Пространство имен: std
timed_mutex::lock
Блокирует вызывающий поток до тех пор, пока этот поток не получит права владельца объекта mutex
.
void lock();
Замечания
Если вызывающий поток уже является владельцем mutex
, поведение не определено.
Конструктор timed_mutex::timed_mutex
Создает объект timed_mutex
, который не заблокирован.
timed_mutex();
Деструктор timed_mutex::~timed_mutex
Освобождает все ресурсы, используемые объектом mutex
.
~timed_mutex();
Замечания
Если при выполнении деструктора объект заблокирован, поведение не определено.
timed_mutex::try_lock
Попытки получить права владельца объекта mutex
без блокировки.
bool try_lock();
Возвращаемое значение
Значение true
, если метод успешно получает права владельца mutex
; в противном случае — значение false
.
Замечания
Если вызывающий поток уже является владельцем mutex
, поведение не определено.
timed_mutex::try_lock_for
Попытки получить права владельца объекта mutex
без блокировки.
template <class Rep, class Period>
bool try_lock_for(const chrono::duration<Rep, Period>& Rel_time);
Параметры
Rel_time
Объект chrono::duration, который указывает максимальный интервал времени, в течение которого метод пытается получить права владельца объекта mutex
.
Возвращаемое значение
Значение true
, если метод успешно получает права владельца mutex
; в противном случае — значение false
.
Замечания
Если вызывающий поток уже является владельцем mutex
, поведение не определено.
timed_mutex::try_lock_until
Попытки получить права владельца объекта mutex
без блокировки.
template <class Clock, class Duration>
bool try_lock_for(const chrono::time_point<Clock, Duration>& Abs_time);
bool try_lock_until(const xtime* Abs_time);
Параметры
Abs_time
Момент времени, определяющий порог, после которого метод больше не пытается получить права владельца объекта mutex
.
Возвращаемое значение
Значение true
, если метод успешно получает права владельца mutex
; в противном случае — значение false
.
Замечания
Если вызывающий поток уже является владельцем mutex
, поведение не определено.
timed_mutex::разблокировка
Освобождает права владения объектом mutex
.
void unlock();
Замечания
Если вызывающий поток не является владельцем mutex
, поведение не определено.