VC结束线程

收集遇到的关于线程的问题,主要是结束时会碰到的问题。

1. TerminateThread强制结束线程导致死锁。

来源:http://topic.youkuaiyun.com/u/20110310/20/9128db6a-66a1-42f4-b7c7-c0c5af5d1cfd.html

问题描述:当某种情况下,需要结束线程时,使用TerminateThread 强制结束线程,发生死锁现象。

解释:TerminateThread可能会产生不可预料结果的情况,如果一个线程正在用new或delete的时候被Terminate了,那这个程序再遇到用new或都delete的时候就会发生死锁。因为new和delete操作会使用资源锁进行控制,而TerminateThread是强行终止线程,造成锁没有被释放,所以再次调用new或delete时就发生死锁。同样的道理,如果结束时,线程正在进行某些带锁的操作,也会发生死锁。

解决方法:加状态量,需要退出时,优雅的执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值