В C ++ 14 было std::shared_timed_mutex
, которое предоставляет те же возможности, что и std::shared_mutex
, , с добавлением дополнительных функций для поддержки тайм-аутов при блокировках .
Поэтому вы могли бы использовать std::shared_lock
с std::shared_timed_mutex
просто отлично.
Первоначально считалось, что это все, что требовалось, но затем разработчики указали, что они могут улучшить производительность, исключив функции тайм-аута, поэтому std::shared_mutex
был добавлен как отдельный тип, но было слишком поздно добавлять его в C ++ 14, поэтому он был добавлен в C ++ 17.