Spec-Zone.ru › C++

Именованные требования C++: BasicLockable (начиная с C++11)

Требования BasicLockable описывают минимальные характеристики типов, обеспечивающих семантику блокирующего взаимоисключающего доступа для агентов выполнения (то есть потоков).

Требования

Чтобы тип L соответствовал требованиям BasicLockable, для объекта m типа L должны выполняться следующие условия:

Выражение Предварительные условия Эффекты
m.lock() Блокирует выполнение до тех пор, пока текущий агент выполнения (поток, процесс, задача) не сможет получить блокировку. Если выбрасывается исключение, блокировка не устанавливается.
m.unlock() Текущий агент выполнения удерживает эксклюзивную блокировку на m. Снимает эксклюзивную блокировку, удерживаемую агентом выполнения.

Не выбрасывает исключений.

Эксклюзивные блокировки

Блокировка объекта называется эксклюзивной блокировкой, если она установлена вызовом функции-члена lock, try_lock, try_lock_for или try_lock_until.

Стандартная библиотека

Следующие типы стандартной библиотеки соответствуют требованиям BasicLockable:

mutex
(C++11)
предоставляет базовые средства взаимного исключения
(класс)
recursive_mutex
(C++11)
предоставляет средства взаимного исключения с рекурсивной блокировкой одним и тем же потоком
(класс)
recursive_timed_mutex
(C++11)
предоставляет средства взаимного исключения с рекурсивной блокировкой
одним и тем же потоком и поддерживает блокировку с тайм-аутом
(класс)
shared_mutex
(C++17)
предоставляет средства совместного взаимоисключения
(класс)
shared_timed_mutex
(C++14)
предоставляет средства совместного взаимоисключения и поддерживает блокировку с тайм-аутом
(класс)
timed_mutex
(C++11)
предоставляет средства взаимного исключения с блокировкой по тайм-ауту
(класс)

См. также

  • Библиотека поддержки потоков
  • Mutex
  • Lockable
  • TimedLockable

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/BasicLockable

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API