Spec-Zone.ru › C++

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

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

Требования

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

Выражение Предварительные условия Эффекты Возвращаемое значение
m.lock_shared() Блокирует выполнение до тех пор, пока для текущего агента выполнения (потока, процесса, задачи) не станет возможным получить блокировку. Если выбрасывается исключение, блокировка не получается.
m.try_lock_shared() Пытается получить блокировку для текущего агента выполнения (потока, процесса, задачи), не блокируя выполнение. Если выбрасывается исключение, блокировка не получается. true, если блокировка получена, в противном случае — false
m.unlock_shared() Текущий агент выполнения удерживает блокировку с совместным доступом для m. Освобождает блокировку с совместным доступом, удерживаемую агентом выполнения.

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

Блокировки с совместным доступом

Блокировка объекта считается блокировкой с совместным доступом, если она получена вызовом функции-члена lock_shared, try_lock_shared, try_lock_shared_for или try_lock_shared_until.

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

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

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

См. также

  • Библиотека поддержки потоков
  • SharedTimedLockable
  • SharedMutex

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

Spec-Zone.ru

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