Конструктор unique_lock::unique_lock
Создает объект unique_lock.
unique_lock() noexcept;
unique_lock(unique_lock&& Other) noexcept;
explicit unique_lock(mutex_type& Mtx);
unique_lock(mutex_type& Mtx, adopt_lock_t Adopt);
unique_lock(mutex_type& Mtx, defer_lock_t Defer) noexcept;
unique_lock(mutex_type& Mtx, try_to_lock_t Try);
template<class Rep, class Period>
unique_lock(mutex_type& Mtx,
const chrono::duration<Rep, Period> Rel_time);
template<class Clock, class Duration>
unique_lock(mutex_type& Mtx,
const chrono::time_point<Clock, Duration> Abs_time);
unique_lock(mutex_type& Mtx,
const xtime *Abs_time) noexcept;
Параметры
Mtx
Мьютекс тип объекта.Rel_time
Объект chrono::duration, который указывает максимальное количество времени, в течение которого метод пытается получить права владельца объекта mutex.Abs_time
Момент времени, определяющий порог, после которого метод больше не пытается получить права владельца объекта mutex.Other
Объект unique_lock.
Заметки
Первый конструктор создает объект, имеющий связанный значение указателя пор 0.
Второй конструктор перемещает мьютекс состояние, связанное с Other. После завершения перемещения, Other больше не связано с мьютексом.
Оставшиеся конструкторы сохраняют &Mtx в виде хранимого указатель mutex. Владение mutex определяется вторым аргументом, если он существует.
No argument |
Владение осуществляется путем вызова метода lock в связанном объекте mutex. |
Adopt |
Владение происходит. Mtx необходимо блокировать при вызове конструктора. |
Defer |
Вызывающий поток не принимается на собственный объект mutex. Mtx не нужно блокировать при вызове конструктора. |
Try |
Владение определяется с помощью вызова try_lock в связанном объекте mutex. Конструктор не создает никаких действий. |
Rel_time |
Владение определяется с помощью вызова try_lock_for(Rel_time). |
Abs_time |
Владение определяется с помощью вызова try_lock_until(Abs_time). |
Требования
Заголовок: mutex
Пространство имен: std