Перейти к содержимому
Тест · Многопоточность: обзор · урок 7 из 12

Тест — два мьютекса в разном порядке

Что может случиться, если два потока одновременно вызовут lock_both(a, b) и lock_both(b, a)?

C++
#include <mutex>

std::mutex a;
std::mutex b;

void lock_both(std::mutex& first, std::mutex& second) {
    std::lock_guard<std::mutex> g1(first);
    std::lock_guard<std::mutex> g2(second);
}

Подпишись, чтобы пройти курс

Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.

Войти другим способом