Какова область действия защиты блокировки мьютекса С++?C++

Программы на C++. Форум разработчиков
Anonymous
Какова область действия защиты блокировки мьютекса С++?

Сообщение Anonymous »

Я пытаюсь выяснить область применения мьютексов и mutex lock_guard, но никто не смог мне это объяснить. Рассмотрим следующий код C++:

Код: Выделить всё

void somefunction
{
std::lock_guard guard(mutex1);
variable1++;

std::lock_guard guard(mutex2);  //what if I took this mutex out?
variable2++;

/*
long block of code
*/

variable3++;
}

Я пытаюсь определить, какое правило защищает блокировка мьютекса. Например, в текущем коде защищает ли мьютекс2 переменную 3? Что, если мы удалим мьютекс 2? Защищает ли мьютекс один переменные 1, 2 и 3? Как узнать, что защищает мьютекс? Спасибо

Подробнее здесь: https://stackoverflow.com/questions/791 ... lock-guard

Вернуться в «C++»