Мне нужно несколько контейнеров STL, threadsafe.
По сути, я думал, что мне просто нужно добавить 2 метода к каждому из объектов контейнера STL,
.lock()
.unlock()
Я также могу разбить его на
.lockForReading()
.unlockForReading()
.lockForWriting()
.unlockForWriting()
Допустимо любое число блокировок для параллельного чтения, но если есть блокировка для записи, то чтение и запись блокируются.
Попытка блокировки длязапись ждет, пока семафор lockForReading не упадет до 0.
Есть ли стандартный способ сделать это?
Как я планирую сделать это неправильно или недальновидно?