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


Класс 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 не существует при выполнении деструктора, поведение не определено.

См. также

Справочник по файлам заголовков
<mutex>