腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(853)
视频
沙龙
0
回答
C++
:
库函数
,
用于
产生
带有
暂停
和
无
等待
的
自旋
锁
?
、
、
我需要一个
自旋
锁
来保护资源。这个
锁
每秒会被获取几次,当它被获取时,它将被持有大约100条指令。换句话说,它几乎总是可用
的
。例外情况是,每隔几天,
锁
将被持有10毫秒。我觉得有必要在循环中放入一条
暂停
指令或等效指令,以确保如果超线程在这段时间内
等待
,那么10毫秒不会膨胀。如果可能的话,我想使用
库函数
,但我想确保函数永远不会进入
等待
状态,而是停留在循环中
等待
锁
。我读过
C++
标准,time
浏览 5
提问于2017-12-04
得票数 0
1
回答
CPU松弛指令
和
C++11原语
、
、
、
、
我注意到许多使用操作系统特定原语实现
的
无
锁
算法,例如描述
的
自旋
锁
(它使用Linux特定
的
原子原语)经常使用"cpu relax“指令。GCC可以通过以下方式实现这一点:具体来说,这条指令通常
用于
while循环
自旋
锁
的
主体中,同时
等待
变量设置为某个值。C++
浏览 5
提问于2014-08-07
得票数 17
1
回答
自旋
锁
不消耗100%
的
cpu
、
、
、
、
100;}CPU:2每芯线程:1插座:1First instance =>它占用了100%
的
cpuThird instance =>值为47-50%,通过调整前两个实例
的
cpu消耗,三者之和接近200%。我
的
假设是,一旦
自旋
锁
获得cpu,它就不会被cpu预先控制(它不会通过调度其他线程而被cpu切换),因此我希望第三个实例失败。但它运行表明,前两个进程线程
的
线程是预
浏览 6
提问于2020-04-28
得票数 0
回答已采纳
1
回答
为什么AMD-CPU有如此愚蠢
的
暂停
计时
、
、
、
、
我已经为
C++
开发了一个类似于Java
的
监视器对象,并做了一些改进。主要
的
改进是不仅有一个
用于
锁定和解锁
的
自旋
循环,而且还有一个
用于
等待
事件
的
自旋
循环。在这种情况下,您不必锁定互斥
锁
,而是在wait_poll函数上提供一个谓词,代码反复尝试锁定互斥
锁
轮询,如果可以锁定互斥
锁
,则调用返回(或移动)一对bool
和
result-type
的</e
浏览 6
提问于2021-09-26
得票数 1
2
回答
是什么提供了
自旋
锁
的
有效性?
、
、
自旋
锁
可能只在具有真正并行性
的
系统上有效,即多核/处理器系统。由于他们
的
设计,这并不令人惊讶。 尽管如此,共享资源
的
线程必须在不同
的
内核上执行。否则,情况类似于单处理器系统。是概率问题还是调度器试图将互锁线程放在不同
的
CPU上以提供真正
的
并发性?
浏览 7
提问于2014-03-14
得票数 3
3
回答
为什么没有std::等效于pthread_spinlock_t,就像pthread_mutex_t & std::mutex一样?
、
、
、
我在并发程序中使用了一些线程,主要是使用
自旋
锁
、互斥变量
和
条件变量。 我开始研究使用std::线程
和
使用std::mutex进行多线程
的
问题,我注意到在p线程中似乎没有类似于spinlock
的
东西。
浏览 13
提问于2020-04-30
得票数 3
回答已采纳
1
回答
如何在没有CAS指令
的
平台上实现
自旋
锁
?
、
、
、
、
通常
的
做法是在支持CAS指令
的
平台上将CAS指令封装在一个while循环中。但是,像SPARC这样
的
平台没有原子CAS指令。
浏览 6
提问于2020-06-01
得票数 1
回答已采纳
2
回答
如果此类型
的
hashtable cound被定义为
无
锁
?
、
、
我
的
问题是: 如果一个哈希表有N个桶,并且每个桶都有一个
锁
,那么在任何时候,都应该有>=1任务正在进行。这种类型
的
哈希表可以定义为
无
锁
的
吗?
浏览 1
提问于2013-12-12
得票数 0
回答已采纳
3
回答
Spinlock与繁忙
的
等待
、
请解释为什么忙碌
的
等待
通常会被皱眉,而旋转通常被认为是好
的
。据我所知,它们都是无限循环
的
,直到满足某种条件。
浏览 3
提问于2016-06-30
得票数 18
3
回答
锁
释放并发队列
、
此代码片段来自提供
的
ConcurrentQueue实现。= 0) spin.SpinOnce(); result = m_array[lowLocal]; } 它真的是
无
锁
的
而不是旋转
的
吗
浏览 2
提问于2013-03-02
得票数 3
回答已采纳
1
回答
读者作家SpinLock
、
我对
C++
非常陌生,我想专注于编写性能良好的多线程代码,因为我将尝试移植我们公司
的
内部GUI框架,该框架目前是用C#实现
的
。因此,我想获得一些关于代码风格
和
性能
的
建议,这些建议对我所写
的
读者-作者
自旋
锁
是有利
的
:{ { /**当查询读取器
锁
时,它会旋转(并生成每个MAX_SPIN_COUNT
自旋</e
浏览 0
提问于2019-02-19
得票数 4
回答已采纳
1
回答
如何理解这些
自旋
锁
的
实现?
、
、
、
虽然所有这些算法在历史上都很重要,但实际
的
自旋
锁
需要在恒定
的
时间
和
空间中运行,为此需要一个比加载或存储更多
的
原子指令。给定test_and_set,获得
自旋
锁
几乎是微不足道
的
: L
的
价值是什么意思?类型
锁
=布尔型:= false;过程在不测试时获得
锁
(ref L: lock),在L-空时获得set(
浏览 1
提问于2017-08-30
得票数 2
11
回答
“
自旋
锁
”到底是什么?
我一直想知道它们是什么:每当我听说它们时,未来飞轮般
的
设备
的
图像就会起舞(滚动?)在我
的
脑海里。 他们是什么?
浏览 0
提问于2009-12-24
得票数 124
回答已采纳
1
回答
多线程环境中繁忙/
等待
或旋转模式
、
避免缓存丢失和上下文切换 我完全明白为什么它能避免缓存丢失。但我仍然有困难,它如何解决如何避免上下文切换。
浏览 6
提问于2022-07-03
得票数 0
回答已采纳
6
回答
对于内存分配器来说,
自旋
锁
是一个不错
的
选择吗?
、
、
、
、
我曾多次向D编程语言运行库
的
维护人员建议,内存分配程序/垃圾收集器应该使用
自旋
锁
,而不是常规
的
OS关键部分。这还没真正流行起来。以下是我认为
自旋
锁
更好
的
原因: 至少在我所做
的
综合基准测试中,当出现内存分配程序/GC
锁
的
争用时,它比OS关键部分快几倍。编辑:根据经验,在单核环境中,使用
自旋
锁
甚至没有可测量
的
开销,这可能是因为
锁</em
浏览 0
提问于2009-12-15
得票数 8
回答已采纳
1
回答
有时可以用
C++
中
的
std::原子代替std::mutex吗?
、
、
、
、
另外,如您所见,系统可以在线程-2
的
循环中多次被输入/销毁,并且在线程-1中被多次使用,无论何时它是ready。 如果没有std::mutex
和
线程-1中
的
其他重物,我
的
任务能得到某种解决吗?通过传播状态,我
的
意思是所有系统
的
初始数据都应该100%一致地写入全局内存
和
其他内核
的
缓存中,以便其他线程在ready为true时看到完全一致
的
系统。它甚至允许在system之后并在准备就绪之前进行很小(毫秒)
的
<em
浏览 2
提问于2021-02-14
得票数 5
回答已采纳
2
回答
在DPC中使用唯一
的
锁
、
、
、
、
目前正在处理NDIS堆栈中
的
轻量级过滤器。我试图注入一个包,它设置在一个全局变量中,作为一个NBL。在接收NBL期间,如果一个注入
的
NBL挂起,那么线程在选择注入
的
NBL来处理它之前,会获得一个
锁
。最初,我打算使用
自旋
锁
或FAST_MUTEX。但是根据FAST_MUTEX
的
文档,任何其他试图获取
锁
的
线程都将
等待
锁
释放后再继续。 问题是,接收NBL是在DPC模式下运行
的
。这将导致正在
浏览 7
提问于2020-01-03
得票数 1
回答已采纳
3
回答
.NET监视器到底什么时候进入内核模式?
、
、
、
、
我想编译一个列表,列出所有可能
的
条件,使Monitor进入内核模式或使用内核同步对象。但是它有太多
的
问题要回答,唯一有用
的
信息是OP回答了他自己
的
问题,简单地说lock有时会进入内核模式。而且,也没有任何链接来支持这个答案。如果与旧版本有什么不同,我更感兴趣
的
是了解.NET 4
和
4.5。 来自Richter
的
书:“同步块包含内核对象
的
字段、拥有的线程ID、递归计数
浏览 12
提问于2013-02-17
得票数 9
回答已采纳
10
回答
自旋
锁
与信号量
、
、
、
、
信号量
和
自旋
锁
之间
的
基本区别是什么? 我们什么时候会使用信号量而不是
自旋
锁
?
浏览 1
提问于2008-10-12
得票数 127
回答已采纳
1
回答
信号量
和
自旋
锁
的
价格在实际中有多高?
、
、
、
询问是否可以以不影响延迟但使用较少CPU时间
的
方式改进
自旋
锁
。大量
的
答案显示了C++11、Boost等高级语言概念。
的
答案表明,当锁定少于一个线程量子时,倾向于使用
自旋
锁
,但没有给出实际
的
原因指示。
的
答案提供了一个
C++
中信号量实现
的
工作示例,该实现使用了正文中
带有
pthread_wait
的
自旋
锁
,但它不是从任何实际
的<
浏览 7
提问于2013-04-25
得票数 4
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Java 的锁优化
自旋对于synchronized关键字的底层意义
并发编程的艺术 学习笔记(二)
Java-技术专题-synchronized关键字
性能优化-锁的正确选型
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券