Какова область действия защиты блокировки мьютекса С++?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++;
}
Я пытаюсь определить, какое правило защищает мьютекс lock_guard. Например, в текущем коде защищает ли мьютекс2 переменную3? Что, если мы удалим mutex2? Защищает ли мьютекс1 переменную1, переменную2 и переменную3? Как узнать, что защищает мьютекс? Спасибо

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

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