2

У меня есть структура данных, операции которой можно классифицировать как операции чтения (например, поиск) и операции записи (например, вставка, удаление). Эти операции должны быть синхронизированы так, чтобы:Синхронизация чтения/записи

  • операции чтение не могут выполнить, пока операция записи не выполняется (если в том же потоке), однако операции чтения могут выполняться параллельно по отношению к другим операциям чтения.
  • Операции записи не могут выполняться при выполнении операций чтения или записи (если только в том же потоке).

Как можно осуществить такую ​​синхронизацию?

Платформа - это win-api, поэтому объекты синхронизации и блокировки api являются основными строительными блоками.

ответ

3

рекомендуется внедрение Microsoft о блокировке чтения/записи здесь (вам придется прокручивать немного, к заголовку "Reader/Writer замков"):

http://msdn.microsoft.com/en-us/library/ms810427.aspx

Для справки, для тех, которые имеют один и тот же вопрос, но у кого есть роскошь .NET:

http://msdn.microsoft.com/en-us/library/system.threading.readerwriterlock.aspx

+0

Очень полезная статья. благодаря – 2009-07-05 15:36:40