Например, многопоточность никогда не будет работать, если мьютексы не будут устойчивы к многопоточному доступу (например, два одновременных вызова mutex.lock () не могут испортить ситуацию).
Это распространяется и на условные переменные? В частности, я хочу снять блокировку и затем вызвать cond.notify_one (). Теоретически, другой поток может захватить блокировку до уведомления и начать собственный вызов cond.notify_one (). Есть ли гарантия, что это будет хорошо себя вести?
А как насчет простых структур данных, размещенных в куче? Можно ли разрешить одновременный доступ, если структура данных только читается, при условии, что структура данных гарантированно не будет саморегулироваться при чтении? Есть ли документация, по которой структуры данных stl и функции-члены допускают одновременное чтение без блокировки?