Я пытаюсь выяснить область применения мьютексов и 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