腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
真正的
无
锁
MPMC环缓冲器?线程能够互相帮助以避免阻塞吗?
、
、
、
所示的代码并不是完全无
锁
的。当
队列
不为空或未满时,每当挂起写入线程时,读取器线程将返回false,从而阻止整个数据结构取得进展。 我看了一些代码,它们也有类似的问题。使用繁忙的等待,而不是
无
锁
。
浏览 14
提问于2022-04-03
得票数 2
回答已采纳
3
回答
用于多核处理器的Linux中的
无
锁
IPC
、
、
我正试图找到一种方法,在Linux上用C语言用多核处理器编写一个没有
锁
的IPC应用程序。非常感谢您的指导。
浏览 0
提问于2012-07-20
得票数 9
2
回答
实现可变大小的
环形
缓冲区?
、
我已经理解了
环形
缓冲区背后的想法,以及它如何帮助不必在过程中移动元素。然而,我很好奇如何最好地处理线程安全的可变长度缓冲区,并提供与
环形
缓冲区类似的优点?我们是否可以在达到容量时将大小加倍,并让一个线程在互斥
锁
中执行复制?这个可变大小的缓冲区仅仅是一个实现为线程安全的
队列
吗?最好的方法是什么,这种并发读/写访问的替代解决方案的优缺点是什么?
浏览 22
提问于2019-06-30
得票数 0
回答已采纳
1
回答
有没有
队列
比循环
队列
更好的用例?
、
循环
队列
显然更好,因为它帮助我们利用通过弹出元素而留下的空白空间。它还节省了可能用于在每次弹出后对元素进行横向移动的时间。循环
队列
的定义=
环形
缓冲区实现。遵循FIFO。
无
覆盖。
浏览 1
提问于2016-11-01
得票数 0
1
回答
生产者和消费者优化
、
、
、
、
我正在用Qt编写一个具有OnReceive(整数值)事件的C++程序。它捕获整数值并将其转换为std::push_back。在另一个工作线程上,我可以访问这个向量,我可以设置一个信号量来等待20个值,然后我就可以处理它们了。我的问题是,如何将缓冲区或向量分割为0-4,5-10,11-19三个部分,例如,只要向量中有5个值(例如0到4),第二个worker就开始处理它们,而第一线程仍然继续获取其余的值。谢谢。
浏览 0
提问于2017-08-10
得票数 0
1
回答
内核/用户地址空间之间的共享
无
锁
队列
、
、
、
、
我试图在用户和内核空间之间构建两个共享
队列
(一个命令
队列
和一个应答
队列
)。这样,内核就可以将消息发送到用户空间,用户空间可以在完成处理后向内核发送回复。我所做的是使用分配内核内存页(用于
队列
)和mmap到用户空间,现在用户和内核端都可以访问这些页面(这里我的意思是在内核空间中写的内容可以在用户空间中正确读取,反之亦然)。比如说,如果我要为多生产者1-消费者方案构建一个
环形
缓冲区,那么那些
环形
缓冲区访问如何不被同步写入破坏呢?我真正喜欢的是一种
无
锁
方案,
浏览 2
提问于2017-06-20
得票数 1
回答已采纳
2
回答
原子变量是
无
锁
的吗?
、
、
、
、
当我们讨论原子变量时,比如C++11的atomic<>,它是
无
锁
的吗?或者,
无
锁
是不同的吗?如果我用原子变量管理一个
队列
,它会比一个
无
锁
队列
慢吗?
浏览 0
提问于2012-04-11
得票数 42
回答已采纳
2
回答
如果不为空,则释放
锁
队列
入队
、
、
、
我已经使用基于的比较和交换用C语言实现了一个
无
锁
队列
。由于
队列
的
无
<em
浏览 0
提问于2011-05-03
得票数 2
1
回答
无
锁
数据结构中的非POD类型
、
、
、
我想为非POD数据类型编写
无
锁
代码;也就是说,非平凡的可销毁类和非平凡的可构造类。我的理解是,这是为了防止非
锁<
浏览 0
提问于2015-12-01
得票数 4
2
回答
如何评估
无
锁
队列
的性能?
、
、
、
我已经使用中解释的危险指针方法实现了一个
无
锁
队列
,使用了用于实现的GCC CAS指令和用于线程本地结构的pthread本地存储。我之所以在这里问这个问题,是因为我试着将它与“锁定”
队列
进行了比较,我发现与
无
锁
实现相比,这具有更好的性能。我尝试的唯一测试是在4核x86_64机器上创建4个线程,在
队列
上执行10.000.000个随机操作,它比
无
锁
版本快得多。我想知道你是否可以建议我一个方法来遵循,例如,我必须在
队列
上测试
浏览 8
提问于2011-09-27
得票数 3
回答已采纳
2
回答
CoreAudio实时线程与UI线程通信的正确方法是什么?
、
、
我可以使用GCD消息
队列
吗?或者有更基本的系统可以使用吗?再考虑一下,我想我可以使用一个
无
锁
的
环形
缓冲区,RT线程将一条消息放入其中,UI线程检查要取出的消息。这是最好的方法吗?
浏览 3
提问于2013-03-20
得票数 3
回答已采纳
1
回答
无
锁
队列
轮询最快的
无
竞争方法是什么?
、
、
、
、
假设我们有一个单生产者线程的单用户线程
无
锁
队列
,并且生产者可以长时间运行而不产生任何数据。当
队列
中没有任何东西时,让使用者线程休眠将是有益的(为了节省电力和为其他进程/线程释放CPU )。如果
队列
不是
无
锁
的,那么解决此问题的简单方法是让生成线程锁定互斥
锁
,完成其工作,发送条件变量并解锁,以及读取线程锁定互斥
锁
,等待条件变量,执行其读取,然后解锁。但是,如果我们使用的是
无
锁
队列</e
浏览 1
提问于2010-11-21
得票数 6
2
回答
我可以使下面的代码
锁
自由/原子的吗?
、
、
int val = memLoc[index++];int val = memLoc[index++ & 0xFF]; 尝试从共享的
环形
缓冲区读取threadsafe,每次调用都会获得下一个值-如果可能的话,我希望它是
无
锁
的,因为它经常发生。
浏览 4
提问于2012-04-13
得票数 5
回答已采纳
3
回答
Fober等人的
无
锁
FIFO
队列
:多个消费者和生产者?
、
、
、
我想知道Fober等人的论文中提出的先进先出
队列
是否是多消费者和生产者先进先出
队列
。如果不是,哪一个是记录最好的多消费者和生产者FIFO
队列
? 谢谢
浏览 0
提问于2010-06-05
得票数 3
回答已采纳
2
回答
将midiReadProc结果传递给C中的主线程
、
、
我在OSX/达尔文中有以下程序结构:使用者实时CoreAudio线程将数据从循环缓冲区呈现到DAC.生产者线程参数可以由GUI (GLUT,非Cocoa)或MIDI控制。但是,midiReadProc( )回调是在它自己的实时线程上进行的,它既不应该控制生产者线程,也不应该通知它,但是MIDI数据应该以某种方式传递给主线程,生产者线程应该从主线程中排队并更新。提前谢谢。
浏览 3
提问于2016-01-30
得票数 0
回答已采纳
1
回答
用循环缓冲区实现服务器与客户端的数据交换
、
、
、
、
我想用
环形
缓冲区在客户端和服务器之间进行数据交换。我还编写了一些函数(缓冲区初始化、popFront和pushBack)来编写缓冲区。 如何才能实现这一想法?
浏览 4
提问于2017-05-24
得票数 1
回答已采纳
5
回答
循环缓冲区
队列
中的
无
锁
进度保证
、
、
、
、
有趣的是,我发现很多程序员错误地认为“
无
锁
”仅仅意味着“没有互斥的并发编程”。通常,还有一个相关的误解,即编写
无
锁
代码的目的是为了获得更好的并发性能。当然,
无
锁
的正确定义实际上是关于进度保证的。
无
锁
算法保证至少有一个线程能够向前推进,而不管其他线程在做什么。 这意味着没有
锁
的算法永远不会有一个线程依赖另一个线程来继续执行的代码。例如,
无
锁
代码不能出现线程A设置标志的情况,然后线程B在等待线程A取消设
浏览 3
提问于2017-08-27
得票数 30
回答已采纳
1
回答
可变长度的
无
锁
队列
?
、
、
、
我在C/C++中搜索了相当多的
无
锁
队列
,但是它们中的大多数必须指定最大数量的元素,包括boost::lockfree。 有人能给我一些关于可变长度、多个生产者和多个消费者
无
锁
队列
的信息吗?
浏览 2
提问于2013-08-27
得票数 1
1
回答
编年史
队列
:为多路复用生产者写入单个
队列
的推荐方法是什么?
、
、
让有5个生产者线程,和一个
队列
。我似乎有两个选择:首先同步5个生产者线程(如无
锁
机制,例如中断器),创建一个额外的线程,其中包含一个写入编年史
队列
的附加线程。 为什么问这个问题?我最初的印象是,写入编年史
队列
是
无
锁
的,因此应该非常快。但是github文档多次提到,有一个写
锁
可以序列化并发写入。所以,我不知道放在编年史
队列
前面的<e
浏览 3
提问于2022-04-19
得票数 1
回答已采纳
1
回答
简单
无
锁
MPSC
环形
缓冲器的故障
、
、
、
我试图实现一个基于数组的
环形
缓冲区,这是线程安全的多个生产者和一个消费者。主要的想法是有原子头和尾指数。当将元素推送到
队列
时,会原子地增加头部以保留缓冲区中的一个插槽:#include <chrono>#include <stdexcept
浏览 0
提问于2019-05-09
得票数 1
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
实现线程安全队列——细粒度锁实现
iPhone卡贴机子 有锁变为无锁机子
说说无锁编程那些事(下)
【crossbeam系列】1有锁并发、无锁并发和crossbeam极简介
MySQL:无锁可扩展的 WAL 设计
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
实时音视频
活动推荐
运营活动
广告
关闭
领券