多线程的两种启动方式

detach()和join();

假设我们有一个线程t,

当我们定义好线程的入口函数后(thread t(FUNC)),

接下来使用t.detach();来开始线程的话。这个线程t跟我们的主线程main就会并行执行,这两个线程就会互相争抢资源。并且当主线程执行完毕后,不会等待t线程执行结束,整个程序就会结束,资源就会被回收。

而当我们使用t.join();来开始线程的话,程序就会等待t这个线程执行完,才开始下一个线程(就是我们的主线程)。

原文地址:https://www.cnblogs.com/leo-lv/p/10869947.html