Я пытаюсь использовать boost :: shared_mutex для реализации мьютекса с несколькими читателями и с одним писателем.Мой вопрос довольно прост, возможно ли для потока получить доступ читателя к shared_mutex, когда другой поток пытается заблокировать этот shared_mutex для записи?Например, у меня есть 10 потоков, только один из них может писать,
- поток 1 имеет shared_lock для этого shared_mutex и пытается что-то прочитать
- поток 2 имеет shared_lock для этогоshared_mutex и пытается что-то прочитать
- поток 3 имеет unique_lock для этого shared_mutex и пытается что-то записать
- поток 4 имеет shared_lock для этого shared_mutex и пытается что-то прочитать
- поток 5 имеет shared_lock для этого shared_mutex и пытается что-то прочитать
В данный момент shared_mutex заблокирован thread 2 , мой вопрос:Возможно ли, что поток 4 может получить доступ для чтения к этому shared_mutex, прежде чем поток 3 сможет записать?Возможно ли, чтобы мьютекс читателя / писателя когда-либо попадал в ситуацию голодания, например, 100 читателей против 1 писателя?
Спасибо.