Самый простой инструмент для записи шаблона 1 - несколько читателей с расширенной библиотекой - PullRequest
1 голос
/ 29 августа 2009

Я разрабатываю модуль с несколькими потоками и одним кешем в std :: map. Иногда мне нужно обновить кеш. В это время все читатели должны ждать, пока я обновлю карту. Как я могу сделать эту синхронизацию с буст-библиотекой?
П.С .: Некоторое время назад в Boost был read_write_mutex. Но в текущих выпусках Boost его не было.

1 Ответ

4 голосов
/ 29 августа 2009

будет shared_mutex заменить read_write_mutex?

Да.

...

В основном unique_lock<shared_mutex> даст вам блокировку записи, shared_lock<shared_mutex> даст вам блокировку чтения и upgrade_mutex<shared_mutex> даст вам блокировку чтения, которую вы можете обновить с помощью передача права собственности (с переездом) на unique_lock<shared_mutex>.

http://lists.boost.org/Archives/boost/2008/01/132656.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...