iOS - 理解OSSpinLock不再安全

OSSpinLock在iOS开发中曾被广泛使用,但存在一个问题:低优先级线程可能在高优先级线程之前获得锁,导致高优先级线程陷入循环等待,浪费CPU资源。这种现象称为优先级反转,可能引发自旋锁无法释放,严重影响系统性能。博客详细探讨了这个问题及其后果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OSSpinLock,自旋锁。不再安全原因:低优先级的线程先获取到锁,而后高优先级线程也来获取这个锁,高优先级意味着其可以在CPU调度中有更大几率分配到时间片,但拿到时间片后获取不到自选锁,时间都浪费到了循环等待上。而这时低优先级的现场可以正常执行任务,但其分配到时间片的几率又很小,从而加剧CPU资源的浪费,也有可能出现自旋锁无法释放的问题;这种低优先级会比高优先级先执行,或者说更快执行的现象,个人认为这种情况就是优先级反转

参考自:YY大神不再安全的 OSSpinLock

https://blog.ibireme.com/2016/01/16/spinlock_is_unsafe_in_ios/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值