个人大概总结:
join 即等待线程,线程退出后继续往下执行
detach 即分别执行,创建完线程后,主线程继续执行。和传统的beginthread 线程执行方式一样。。
join()
操作是在std::thread t(func)
后“某个”合适的地方调用,其作用是回收对应创建的线程的资源,避免造成资源的泄露。
detach()
操作是在std::thread t(func)
后马上调用,用于把被创建的线程与做创建动作的线程分离,分离的线程变为后台线程,其后,创建的线程的“死活”就与其做创建动作的线程无关,它的资源会被进程回收。