detach()和join();
假设我们有一个线程t,
当我们定义好线程的入口函数后(thread t(FUNC)),
接下来使用t.detach();来开始线程的话。这个线程t跟我们的主线程main就会并行执行,这两个线程就会互相争抢资源。并且当主线程执行完毕后,不会等待t线程执行结束,整个程序就会结束,资源就会被回收。
而当我们使用t.join();来开始线程的话,程序就会等待t这个线程执行完,才开始下一个线程(就是我们的主线程)。
detach()和join();
假设我们有一个线程t,
当我们定义好线程的入口函数后(thread t(FUNC)),
接下来使用t.detach();来开始线程的话。这个线程t跟我们的主线程main就会并行执行,这两个线程就会互相争抢资源。并且当主线程执行完毕后,不会等待t线程执行结束,整个程序就会结束,资源就会被回收。
而当我们使用t.join();来开始线程的话,程序就会等待t这个线程执行完,才开始下一个线程(就是我们的主线程)。