我对join()和detach()线程的使用非常困惑。任何人都可以解释使用两者的逻辑和目的。是否可以在同一个程序中使用这两个函数?
当我运行下面提到的程序时,检查功能中的cout状态执行5次。而如果我替换join() detach()并运行相同的程序,check函数中的cout语句只执行4次。有谁知道这个的原因?
#include <iostream>
#include <string>
#include <thread>
int *check(){ std::cout<<"entering check func"<<std::endl; return 0; }
int main() {
for(int i=0; i < 5; i++){
std::thread t(&check);
t.join();
} return 0;
}