C中一种随机崩溃问题

最近遇到一些随机崩溃,我不知道有没有人这么写过代码。
第一种是两个线程调用同一个链表,代码中只对删除操作加了锁,但是因为是芯片是多核,程序是双线程所以导致在某个时刻两个线程都会查询到需要删除链表的地址,最后删除有先后。后删除资源的线程导致崩溃。这里需要把查询和删除写在一个锁里,查询完成以后删除。有同事觉得删除加锁就行了因为删除是原子操作,有这么认知的小伙伴改一改。
第二种是定时器删除操作导致的崩溃,事件中包含一个定时器回调,事务线程判定删除操作是需要时间,在这个时间内执行了回调线程有些小伙伴在回调线程中直接删除事务没有加锁判定事务还是否存在,所以导致了崩溃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值