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


Конструктор 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

См. также

Ссылки

Класс unique_lock

<mutex>