Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
8
Анализ безопасности блокировок в функции с двумя mutex
Условие задачи
Провести ревью функции calculation, в которой задействованы два объекта std::mutex.
- Оценить, насколько корректно выполнена синхронизация.
- Выявить риск взаимоблокировки (deadlock).
- Предложить надёжный способ одновременного захвата нескольких мьютексов.
void calculation(std::mutex& mxA, std::mutex& mxB, const std::vector<int>& input) {
std::lock_guard<std::mutex> lock1(mxA);
std::lock_guard<std::mutex> lock2(mxB);
// расчёт данных
}