请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

自旋锁为什么不适合单核使用?

图片描述
单核在某一个时间点只能执行一个线程。假设现在执行到了自旋锁这个位置:要对某个变量执行操作,首先去检测这个变量有没有加锁,检测的结果肯定是没有加锁的(因为cpu正在执行当前自旋锁,不可能执行其它程序),就可以顺利成章的执行自旋锁里面的东西了啊?
老师我的理解有问题么?

正在回答 回答被采纳积分+3

1回答

咚咚呛 2020-03-05 23:14:11

有些偏差。因为自旋锁会一直执行(循环),从而占用CPU时间,因为只有一个核,这就导致别的程序不能使用CPU了。

1 回复 有任何疑惑可以回复我~
  • 提问者 guoyansi #1
    如果是单核的CPU,那是不是除了这个自旋锁的程序在执行,计算机其他所有的软件都应该不能执行了?
    回复 有任何疑惑可以回复我~ 2020-03-05 23:42:09
  • 咚咚呛 回复 提问者 guoyansi #2
    是的,他会占用特别多的CPU资源,你可以理解为是一个死循环。不过操作系统还是可以把它切换出去,让给其他线程执行的。只不过只要自旋锁线程在执行了,就占用大量CPU资源,对别的线程不公平。
    回复 有任何疑惑可以回复我~ 2020-03-06 00:09:27
  • 穌慕钧 回复 咚咚呛 #3
    那如果这个单核支持多线程,是不是还是可以用的?
    回复 有任何疑惑可以回复我~ 2022-06-27 09:34:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信