Блокировка чтения / записи в C ++ - PullRequest
62 голосов
/ 28 октября 2008

Я ищу хорошую блокировку чтения / записи в C ++. У нас есть сценарий использования одного нечастого автора и многих постоянных читателей, и мы хотели бы оптимизировать его. Предпочтительно, я бы хотел кроссплатформенное решение, однако Windows только один будет приемлемым.

Ответы [ 12 ]

2 голосов
/ 08 марта 2011

http://www.codeproject.com/KB/threads/ReaderWriterLock.aspx

Вот хорошая и легкая реализация, подходящая для большинства задач.

0 голосов
/ 28 октября 2008

Вы можете скопировать превосходный Sun ReentrantReadWriteLock . Он включает в себя такие функции, как необязательная справедливость, понижение уровня блокировки и, конечно, повторный вход.

Да, это на Java, но вы легко можете прочитать и перенести его на C ++, даже если вы не знаете Java. Документация, на которую я ссылался, содержит все поведенческие свойства этой реализации, поэтому вы можете быть уверены, что она делает то, что вам нужно.

Если ничего другого, это руководство.

...