Несколько читателей / одна блокировка записи с использованием WinAPI

Существует ли широко используемая реализация WinAPI для блокировки чтения и записи? Я только нашел одна реализация и не знаю, если это надежно.

1

Решение

Win32 Critical Sections используют несколько спинов перед ожиданием. У вас есть только 2 читателя потока и редких записей. Просто используйте один критический раздел для всего, и я думаю, вы получите очень хорошее соотношение производительности и простоты. Возможно, вы захотите использовать RAII идиому, чтобы предотвратить выход из CS пути.

3

Другие решения

В WinXP API такой блокировки нет.
Вы можете использовать shared_mutex от boost. пример. Кстати, такие блокировки имеют смысл, когда у вас много читателей и несколько случайных писателей. Если это не ваш случай — просто используйте mutex (критический раздел).

0

По вопросам рекламы [email protected]