#include #include #include #include #include #include #include #include using namespace std::chrono_literals; std::atomic_int counter = 0; std::mutex counter_mutex; void locked_counter() { for (int i = 0; i < 5; ++i) { std::lock_guard lock(counter_mutex); std::this_thread::sleep_for(100ms); std::cout << "Thread 1 executing\n"; ++counter; } } int main() { std::jthread t2(locked_counter); // pass by value for(int i = 0; i < 5; ++i) { std::lock_guard lock(counter_mutex); std::cout << "counter is " << counter << std::endl; } }