总之上代码吧
#include <iostream> #include <thread> static bool s_Finished = false; void DoWork() { using namespace std::literals::chrono_literals; std::cout << "Started thread id-" << std::this_thread::get_id() << std::endl; while (!s_Finished) { std::cout << "Working... "; std::this_thread::sleep_for(1s); } } int main() { std::thread worker(DoWork); std::cin.get(); s_Finished = true; worker.join();//只有当这个进程结束,下一行,也就是std::cin.get()才会执行! std::cout << "Finished. thread id-" << std::this_thread::get_id() << std::endl; std::cin.get(); }