Синхронизация чтения/записи

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

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

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

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


person Community    schedule 05.07.2009    source источник


Ответы (1)


Рекомендуемая Microsoft реализация блокировки чтения/записи находится здесь (вам придется немного прокрутить до заголовка «Блокировки чтения/записи»):

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

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

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

person Steve Jessop    schedule 05.07.2009