《白话C++》第12章并发,Page551 12.3.3线程剥离② 为什么要分手

为什么要分手:

线程对象创建出实际线程,然后就立马和后者宣告分手,彼此间再无瓜葛,多轻松。例子如下:

trd所代表的线程每隔1s就输出一个数字,连续输出10次(够无聊的)。主线程中trd调用detach()宣告和那个的无聊的线程分手。

主线程直接睡了5s,

子线程至少要执行10s,可是主线程只等5s就结束主函数,最终导致程序结束,谁来对子线程人生中的最后5s负责?这个程序就不会出点异常或报个错吗?当然不会,大家都是成年人,分手就各走各的。

结论:当主线程退出时,那些已经和相应对象“detach()”的实际线程,如果还在运行,就只能强制地,不体面地终止。

什么叫强制,什么叫不体面,典型的如,一个对象的析构过程不会被执行:

事情就这样,线程如果剥离,程序就管不了它。

如果将28行,改为休眠11秒,则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值