文章作者:里海
简介:
分离线程detach(),下面的例子创建三个线程并分离,主线程等待三个线程5秒时间。
注意主线程结束会调用exit(),此函数将整个进程结束,所有的线程都会退出。
线程分离后不可接合并且可以安全地销毁。
效果:
代码:
#include <iostream>
#include <thread>
#include <chrono>
void pause_thread(int n)
{
std::this_thread::sleep_for(std::chrono::seconds(n));
std::cout << "暂停 " << n << " 秒结束\n";
}
int main()
{
std::cout << "生成并分离三个线程...\n";
std::thread(pause_thread, 1).detach();
std::thread(pause_thread, 2).detach();
std::thread(pause_thread, 3).detach();
std::cout << "完成分离线程.\n\n";
//给被分离线程5秒时间完成,但线程不一定完成!
pause_thread(5); //暂停5秒
return 0;
}