// // 7.2.critical.section.a.cpp // chapter 7 parallelism and concurrency // modern c++ tutorial // // created by changkun at changkun.de // https://github.com/changkun/modern-cpp-tutorial // #include #include int v = 1; void critical_section(int change_v) { static std::mutex mtx; std::lock_guard lock(mtx); // do contention operations v = change_v; // mtx will be destructed when exit this region } int main() { std::thread t1(critical_section, 2), t2(critical_section, 3); t1.join(); t2.join(); std::cout << v << std::endl; return 0; }