为什么要分手:
线程对象创建出实际线程,然后就立马和后者宣告分手,彼此间再无瓜葛,多轻松。例子如下:
trd所代表的线程每隔1s就输出一个数字,连续输出10次(够无聊的)。主线程中trd调用detach()宣告和那个的无聊的线程分手。
主线程直接睡了5s,
子线程至少要执行10s,可是主线程只等5s就结束主函数,最终导致程序结束,谁来对子线程人生中的最后5s负责?这个程序就不会出点异常或报个错吗?当然不会,大家都是成年人,分手就各走各的。
结论:当主线程退出时,那些已经和相应对象“detach()”的实际线程,如果还在运行,就只能强制地,不体面地终止。
什么叫强制,什么叫不体面,典型的如,一个对象的析构过程不会被执行:
事情就这样,线程如果剥离,程序就管不了它。
如果将28行,改为休眠11秒,则