问一个spinlock的问题

发布于 2022-09-18 19:17:33 字数 94 浏览 11 评论 0

SPINLOCK是自旋锁,但是如果只有一个CPU的话, 假如锁之前给锁住了,那是不是程序就会一直死在这里,动不了? 别的程序也都运行不了???释放锁的程序也运行不了, 那系统不就崩溃了么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

浅唱々樱花落 2022-09-25 19:17:33

对于只有一个CPU,如果编译时去掉SMP的配置,实际上spinlock是空操作。而就算编译进来了,除非程序有错误,否则不应该出现这种情况,因为按要求得到spinlock之后会导致任务切换的操作是不能做的。

逆光飞翔i 2022-09-25 19:17:33

锁之前给锁住了,但总要释放,不释放就是个死

兮子 2022-09-25 19:17:33

嵌入式基本都是单核, 假如 是空函数的话, 那这个锁就是无效的啊? 那 SPINLOCK 就没有用了?

[ 本帖最后由 star316 于 2009-3-2 15:36 编辑 ]

带上头具痛哭 2022-09-25 19:17:33

原帖由 star316 于 2009-3-2 15:34 发表
嵌入式基本都是单核, 假如 是空函数的话, 那这个锁就是无效的啊? 那 SPINLOCK 就没有用了?

前面有个帖子讨论过这个问题。
如果是单核,且在2.6内核中,spin lock只是禁止内核抢占的开关而已。

送你一个梦 2022-09-25 19:17:33

原帖由 dreamice 于 2009-3-2 16:44 发表

前面有个帖子讨论过这个问题。
如果是单核,且在2.6内核中,spin lock只是禁止内核抢占的开关而已。

恩。单核下基本上就是空转

赠佳期 2022-09-25 19:17:33

但cpu是不需要自旋锁的,只要关闭中断就行了。

む无字情书 2022-09-25 19:17:33

原帖由 emmoblin 于 2009-3-2 23:30 发表
但cpu是不需要自旋锁的,只要关闭中断就行了。

这句话是什么意思?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文