#include #include int main() { std::mutex m1, m2; int i = 0; std::thread t1([&]{ m1.lock(); i = 1; m1.unlock(); }); std::thread t2([&]{ m2.lock(); i = 2; m2.unlock(); }); t1.join(); t2.join(); }