I have the following code snippet:
#include <thread>
int main(){
std::thread trial([](){ return 2;});
//trial.join()
return 0;
}
From this I get the following output:
terminate called without an active exception
[1] 17963 abort (core dumped) ./a.out
Now, this doesn't happen when I call .join()
after I create the thread. As far as I know, .join()
waits until the execution of the thread ends. However, it also seems to prevent abort from happening. Could somebody explain what's going on?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…