detach大坑

使用detach()函数,让主线程和子线程分开运行,即使主线程运行完了,也就是这个进程已经结束了,而子线程还在继续运行,它将会交由操作系统托管,这将会导致很多的问题。

如果使用detach():

1.如果线程传参数传递int这种简单的类型,不要传递引用,亲测编译器会报错。

2.如果传递的是一个类对象,不要让编译器进行隐式类型转换,在创建线程的同时就构建出来一个临时对象,并且在函数声明的时候使用引用来接收,否则会右调用一次拷贝构造函数,再重新创建一个对象。

3.创建线程的时候使用了一个临时变量,在主线程结束的之后,临时变量所占用的内存已经被回收了,这是子线程再去使用这一片已经被系统回收的内存,就会造成内存泄漏的危险行为。

so:能用join就不要用detach。

转载于:https://www.cnblogs.com/leoncumt/p/10505754.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值