У меня есть структура данных, операции которой можно разделить на операции чтения (например, поиск) и операции записи (например, вставка, удаление). Эти операции должны быть синхронизированы, чтобы:
- Операции чтения не могут выполняться во время выполнения операции записи (за исключением того же потока), однако операции чтения могут выполняться одновременно с другими операциями чтения.
- Операции записи не могут выполняться, пока выполняются операции чтения или записи (если только они не выполняются в том же потоке).
Как можно реализовать такую синхронизацию?
Платформа Win-API, поэтому объекты синхронизации API и взаимосвязанные функции являются основными строительными блоками.