Spec-Zone.ru › C++

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

Требования TimedLockable описывают характеристики типов, которые предоставляют семантику блокировки с тайм-аутом и эксклюзивным доступом для агентов выполнения (потоков, процессов, задач).

Требования

  • Lockable

Чтобы тип L удовлетворял требованиям TimedLockable, при заданных

  • rel_time — значении специализации std::chrono::duration, а также
  • abs_time — значении специализации std::chrono::time_point,

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

Выражение Эффект Возвращаемое значение
m.try_lock_for(rel_time) Блокирует выполнение на заданный промежуток времени rel_time или до тех пор, пока не будет получена блокировка для m. true, если блокировка получена, и false в противном случае.
m.try_lock_until(abs_time) Блокирует выполнение до наступления заданного момента времени abs_time или до тех пор, пока не будет получена блокировка для m. true, если блокировка получена, и false в противном случае.

Примечания

Функции-члены try_lock_for и try_lock_until при успешном выполнении получают эксклюзивную блокировку m.

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

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

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

См. также

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

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

Spec-Zone.ru

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