0
我想了解如何使用線程和這個簡單的代碼崩潰與此錯誤: CPP簡單的線程程序崩潰在出口
代碼:
#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
void thread1()
{
while (true)
{
cout << this_thread::get_id() << endl;
}
}
void main()
{
thread t1(thread1);
thread t2(thread1);
this_thread::sleep_for(chrono::seconds(1));
t1.detach();
t2.detach();
}
可有人請解釋爲什麼它在分離之後崩潰以及如何解決這個問題?
'std :: thread :: detach()'通常是一個壞主意。 –
但我別無選擇 –
非正式地,所有(非共享)資源都應該在程序退出時由操作系統回收。但在這種情況下,仍然有一些運行線程,這使得操作系統發瘋。 – felix