Я пишу многопоточный код.Я не уверен, нужен ли мне механизм блокировки чтения и записи.Не могли бы вы пройти через сценарий использования и сказать, нужно ли мне использовать блокировку чтения-записи, или подойдет обычный мьютекс.
Вариант использования: 1) Класс, имеющий две переменные.Они доступны каждому потоку перед выполнением операции.2) Когда что-то идет не так, эти переменные обновляются, чтобы отражать сценарии ошибок.Таким образом, потоки, читающие эти переменные, могут принимать разные решения (включая прерывание)
Здесь, во втором пункте, мне нужно обновить данные.И, во-первых, каждый поток будет использовать данные.Итак, мой вопрос заключается в том, должен ли я использовать блокировку записи при обновлении данных и блокировку чтения при чтении данных.(Примечание: обе переменные находятся в памяти. Просто логический флаг и строка)
Я в замешательстве, потому что обе мои переменные находятся в памяти.Так же ОС заботится о целостности.Я имею в виду, что я могу жить с 1 или 2 потоками, пропускающими обновленное значение, когда какой-то поток записывает данные в мьютекс.
Скажите, если я прав или нет?Также, пожалуйста, скажите, если мне нужно использовать блокировку чтения-записи, или подойдет обычный мьютекс.
Обновление: Я сожалею, что не дал название платформы и компилятора.Я на RHEL 5.0 и использую gcc 4.6.Моя платформа x86_64.Но я не хочу, чтобы мой код зависел от конкретной ОС, потому что вскоре мы перенесем код на Solaris 10.