#include #include #include #include void task(std::string const& name, std::mutex& mutex) { mutex.lock(); std::cout << name << std::endl; mutex.unlock(); } int main() { std::string a { "A" }; std::string b { "B" }; std::mutex mutex { }; std::thread t1 { task, std::cref(a), std::ref(mutex) }; std::thread t2 { task, std::cref(b), std::ref(mutex) }; t1.join(); t2.join(); }