腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
一个正在旋转并试图获得
自旋
锁
的
线程
不能被抢占吗?
、
、
、
当
Linux
上的
线程
正在旋转并试图获得
自旋
锁
时,这个
线程
不可能被抢占吗?我只想确定一些事情。在“向上”系统上,并且没有中断处理程序将访问这个
自旋
锁
。如果正在旋转并试图获得
自旋
锁
的
线程
可以被抢占,我认为在这种情况下,spinlock保护的关键部分可以调用sleep,因为保持
自旋
锁
的
线程
可以重新调度回CPU。
浏览 5
提问于2015-11-26
得票数 2
1
回答
自旋
锁
-(单处理器与多处理器)-(抢占式与非抢占式内核)
、
、
我是
linux
领域的新手。
自旋
锁
被用作繁忙等待机制。1)
自旋
锁
(单处理器+非抢占式内核)-->不存在(因为如果你在
自旋
锁
中睡眠,会导致死锁) 2)
自旋
锁
( Uniprocessor +抢占内核)-->不应该使用,因为它浪费资源。(当
线程
在持有
锁
的同时休眠时会发生什么?其他进程是否可以正
浏览 3
提问于2013-03-05
得票数 0
回答已采纳
4
回答
为什么
linux
在内核代码持有
自旋
锁
后禁用内核抢占?
、
、
、
我是
Linux
新手,正在阅读Rubini & Corbet的
Linux
设备驱动程序手册。我对一项与spinlocks有关的声明感到困惑;这本书写道 内核抢占情况由
自旋
锁
代码本身处理。当内核代码持有
自旋
锁
时
浏览 1
提问于2013-08-15
得票数 4
回答已采纳
3
回答
线程
计数=硬件并行度时互斥
锁
与
自旋
锁
的对比
、
、
、
考虑一个在专用服务器上运行的具有最佳
线程
计数的程序,因此如果一个
线程
被锁定,就不会有其他
线程
(几乎)在等待CPU时间。在这种情况下,
自旋
锁
是否在所有可能的情况下都比互斥
锁
提供更好的性能?编辑一些解释:由于
线程
之间不会争用CPU时间,因此
线程
可以使用
自旋
锁
,而不会对其他
线程
的性能造成任何影响。而且旋转
锁
不会切换到等待模式,因为等待模式可能会很重(至少在windows上是这样的,我不知
浏览 1
提问于2011-01-15
得票数 1
回答已采纳
2
回答
为什么在
Linux
内核(非SMP)中
自旋
锁
是无操作的?
、
、
这就是我想出来的(没有错误或NULL处理,只是为了这个问题): 内核
自旋
锁在内核
线程
内执行,这是抢占的。
浏览 1
提问于2012-07-23
得票数 1
回答已采纳
1
回答
与
自旋
锁相比,无
锁
编程的优点是什么?
、
、
、
我想知道,与
自旋
锁相比,无
锁
编程有哪些优点?我认为,当我们在
线程
(称为A)中使用CAS机制进行无
锁
编程时,如果其他
线程
更改CAS中的值,则
线程
仍然需要再次循环。我想就像我们用旋转
锁
一样!虽然我知道CAS
和
旋
锁
适合在
锁
争不激烈的情况下使用,但是有人能解释在哪种情况下应该使用无
锁
的
锁
和
应该使用
自旋
锁
吗?
浏览 2
提问于2020-08-28
得票数 0
回答已采纳
2
回答
如何在
linux
中使用
自旋
锁
?
、
、
、
我是一名计算机科学专业的学生,我有一个任务要求我使用
自旋
锁
锁定一个
线程
,并在它的关键部分完成后解锁它。困难是我搜索了很多次,但没有找到任何有用的信息。例如,我试图包括像#include <
linux
/spinlock.h>这样的标题,但是当我使用gcc编译这个c程序时,它说找不到这样的头。那么,我应该包括哪些标头,需要调用哪些函数才能使用
自旋
锁
?
浏览 4
提问于2016-11-26
得票数 2
1
回答
票证锁定算法性能?
、
有人熟悉票证锁定算法,它取代了
linux
内核中的基本
自旋
锁
算法吗?我希望能找到这方面的专家。我从一些在线消息来源中了解到,票证锁定算法应该更快,因为朴素算法在CPU总线上淹没了所有试图同时获得
锁
的
线程
。有人能为我确认/否认吗?在我看来,一个不公平的算法应该更快一点,因为在早期占据
锁
的
线程
完成得更快,使调
浏览 1
提问于2012-05-01
得票数 3
2
回答
如何改变替代PHP缓存(APC)中的锁定机制?
、
、
、
、
我最近在Scribd上的一篇演讲中看到,Facebook已经为APC设定了各种锁定机制,包括文件
锁
(默认)、IPC信号量
锁
、
linux
Futex
锁
、p
线程
互斥
锁
和
自旋
锁
。
浏览 1
提问于2009-11-04
得票数 2
回答已采纳
1
回答
旋
锁
能保证收购顺序吗?
、
、
我有一个类似于此的简单
自旋
锁
实现: std::atomic_flag flag; Spinlock(): flag(ATOMIC_FLAG_INITmemory_order_acquire)); flag.clear(std::memory_order_release);}; 在
线程
1调用unloc
浏览 0
提问于2019-04-25
得票数 2
1
回答
Anderson操作系统中利用
自旋
锁
实现
锁
的原理与实践
、
、
假设我们在
线程
A中,当我们调用the ()时,
锁
由其他
线程
B拥有。 我们获取
锁
对象的
自旋
锁
,将
线程
添加到等待列表中,并使用
锁
的
自旋
锁
作为参数调用scheduler.suspend。在挂起方法中,我们将获取调度程序的
自旋
锁
,假设这是免费的,然后释放
锁
的
自旋
锁
,将正在运行的
线程
A的状态更改为等待,从就绪队列中获取一
浏览 1
提问于2019-05-31
得票数 0
回答已采纳
3
回答
互斥
锁
、信号
锁
和
自旋
锁
的区别
、
、
、
、
我正在用IPC做实验,特别是用Mutex,信号量
和
自旋
锁
。我学到的是互斥
锁
用于异步锁定(根据我在网上读到的睡眠机制),信号量是同步锁定(有信号
和
睡眠)机制,
自旋
锁
是同步但非睡眠机制。另一个疑问是Mutex,当我用
线程
&互斥
锁
编写程序时,当一个
线程
运行另一个
线程
时,它不处于睡眠状态,而是不断地尝试获取
锁
。那么Mutex在睡觉还是不睡觉?
浏览 3
提问于2014-05-07
得票数 31
回答已采纳
1
回答
为什么旋转锁在单个CPU上没有意义?
、
、
、
、
在阅读操作系统时,我发现了以下三个简单的部分: 为什么在单个CPU上旋转的
线程
永远不会放弃它,即使单个CPU支持多
线程
?是因为在这种情况下,
自旋
锁
只是浪费了太多的CPU资源吗?CPU内核的数量如何影响不同
锁
(如互斥
锁
<e
浏览 11
提问于2017-02-16
得票数 3
回答已采纳
8
回答
为什么你抱着
自旋
锁
不能入睡?
、
在
linux
内核中,为什么你不能在持有
自旋
锁
的时候睡觉呢?
浏览 2
提问于2011-01-21
得票数 13
回答已采纳
2
回答
带
自旋
锁
冻结的
Linux
内核
线程
、
、
、
、
我有两个内核
线程
,我试图以交替的方式从这两个
线程
打印。我使用
自旋
锁
同步这两个
线程
。spin_unlock(&lock1); } } 在init模块中,我创建这些内核
线程
(kthread_run)
和
cleanup_module停止这些
线程
(kthread_stop)。通过浏览内核源代码,我可以看到spin_lock禁用抢占,kthread
浏览 8
提问于2014-09-16
得票数 1
2
回答
自旋
锁定
线程
如何避免上下文切换的开销?
、
在维基百科里,关于
自旋
锁
的文章。 上下文切换--保存寄存器、pc
和
调度队列--对于所有交换机来说都是常量,不是吗?
浏览 2
提问于2016-04-03
得票数 2
回答已采纳
1
回答
当所有
线程
都是潜在的更新者时,rcu在某种程度上有用吗?
、
、
我的问题实际上是针对
linux
的rcu列表实现的。我需要为正在从列表中读取
和
更新(比如删除该条目)的任何临界区持有一个
自旋
锁
,因为在读取之后看到的rcu版本可能不适合更新。因此,对于我的情况,我让大多数
线程
在某个点或其他点进行更新。你认为有没有办法在这样的场景中有效地利用(即最小化持有
自旋
锁
的部分) rcu实现?
浏览 1
提问于2013-06-27
得票数 0
1
回答
RDMA:对于单边RDMA操作,我能安全地从mlx4_post_send()函数中删除
自旋
锁
吗?
、
我正在将
linux
移植到一个操作系统支持最少的平台上,例如,不支持
自旋
锁
。我的应用程序的目标是拥有应用程序
线程
和
工作
线程
。应用程序
线程
创建和登记对共享队列的请求。工作
线程
不断轮询队列并发布请求。由于我是从一个单
线程
(工作
线程
)访问RDMA接口,所以我想知道删除mlx4_post_send()、mlx4_post_recv()
和
mlx4_poll_cq()中的
自旋
锁
浏览 2
提问于2021-10-05
得票数 0
2
回答
可替代
自旋
锁
的障碍?
、
假设我有一个函数,多个
线程
需要在某种锁定步骤中运行。 while (!go.load()) {} //sync barrier} 我想摆脱
自旋
锁
,把它替换为基于互斥
锁
的东西,因为我有很多
线程
在做各种各样的事情,而
自旋
锁
的十几个
线程
对整体吞吐量来说是不稳定的,如果我在
自旋
浏览 2
提问于2016-06-26
得票数 0
回答已采纳
2
回答
Linux
设备驱动程序:休眠时保持
锁
的恢复
、
、
我一直被告知,在内核代码中保持
自旋
锁
时睡觉是不可能的。造成这种情况的原因如下: 这是个僵局。
线程
A不能被唤醒,因为
线程
B不断地旋转,
线程
B不能取得任何进展,因为它无法获得
锁
。使用上述场景,
线程
A是用户上下文(即在read()实现中),而
线程
浏览 0
提问于2018-05-20
得票数 2
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
详解Linux多线程中的互斥锁、读写锁、自旋锁、条件变量、信号量
linux 内核 --- 自旋锁(spinlock_t)
互斥锁、自旋锁、读写锁……理清它们的区别和应用
CAS与自旋锁
妹妹问我:互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
即时通信 IM
活动推荐
运营活动
广告
关闭
领券