Класс lock_guard
Представляет шаблон, для которого можно создать экземпляры и объект, деструктор которого разблокирует mutex
.
Синтаксис
template <class Mutex>
class lock_guard;
Замечания
В аргументе шаблона Mutex
должно быть указано имя типа мьютекс.
Участники
Общедоступные определения типов
Имя | Описание |
---|---|
lock_guard::mutex_type |
Синоним для аргумента шаблона Mutex . |
Открытые конструкторы
Имя | Описание |
---|---|
lock_guard | Формирует объект lock_guard . |
Деструктор lock_guard::~lock_guard | Снимает блокировку mutex , переданного в конструктор. |
Требования
Заголовок:<mutex>
Пространство имен: std
Конструктор lock_guard::lock_guard
Формирует объект lock_guard
.
explicit lock_guard(mutex_type& Mtx);
lock_guard(mutex_type& Mtx, adopt_lock_t);
Параметры
Mtx
Объект типа мьютекс.
Замечания
Первый конструктор создает объект типа lock_guard
и блокирует Mtx. Если Mtx не является рекурсивным мьютексом, он должен быть разблокирован при вызове этого конструктора.
Второй конструктор не блокирует Mtx. Mtx должен быть заблокирован при вызове этого конструктора. Конструктор не выдает никаких исключений.
Деструктор lock_guard::~lock_guard
Снимает блокировку mutex
, переданного в конструктор.
~lock_guard() noexcept;
Замечания
Если mutex
не существует при выполнении деструктора, поведение не определено.