腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
2
回答
原子变量是
无
锁
的吗?
c++
、
multithreading
、
c++11
、
x86-64
、
atomic
当我们讨论原子变量时,比如C++11的atomic<>,它是
无
锁
的吗?或者,
无
锁
是不同的吗?如果我用原子变量管理一个
队列
,它会比一个
无
锁
队列
慢吗?
浏览 0
提问于2012-04-11
得票数 42
回答已采纳
2
回答
如果不为空,则释放
锁
队列
入队
c
、
atomic
、
lock-free
、
skip-lists
我已经使用基于的比较和交换用C语言实现了一个
无
锁
队列
。由于
队列
的
无
<em
浏览 0
提问于2011-05-03
得票数 2
1
回答
无
锁
数据结构中的非POD类型
c++
、
multithreading
、
boost
、
lock-free
我想为非POD数据类型编写
无
锁
代码;也就是说,非平凡的可销毁类和非平凡的可构造类。我的理解是,这是为了防止非
锁<
浏览 0
提问于2015-12-01
得票数 4
2
回答
如何评估
无
锁
队列
的性能?
c
、
multithreading
、
performance
、
lockless
我已经使用中解释的危险指针方法实现了一个
无
锁
队列
,使用了用于实现的GCC CAS指令和用于线程本地结构的pthread本地存储。我之所以在这里问这个问题,是因为我试着将它与“锁定”
队列
进行了比较,我发现与
无
锁
实现相比,这具有更好的性能。我尝试的唯一测试是在4核x86_64机器上创建4个线程,在
队列
上执行10.000.000个随机操作,它比
无
锁
版本快得多。我想知道你是否可以建议我一个方法来遵循,例如,我必须在
队列
上测试
浏览 8
提问于2011-09-27
得票数 3
回答已采纳
1
回答
无
锁
队列
轮询最快的
无
竞争方法是什么?
multithreading
、
queue
、
mutex
、
condition-variable
、
lockless
假设我们有一个单生产者线程的单用户线程
无
锁
队列
,并且生产者可以长时间运行而不产生任何数据。当
队列
中没有任何东西时,让使用者线程休眠将是有益的(为了节省电力和为其他进程/线程释放CPU )。如果
队列
不是
无
锁
的,那么解决此问题的简单方法是让生成线程锁定互斥
锁
,完成其工作,发送条件变量并解锁,以及读取线程锁定互斥
锁
,等待条件变量,执行其读取,然后解锁。但是,如果我们使用的是
无
锁
队列</e
浏览 1
提问于2010-11-21
得票数 6
5
回答
循环缓冲区
队列
中的
无
锁
进度保证
c++
、
multithreading
、
algorithm
、
concurrency
、
lock-free
有趣的是,我发现很多程序员错误地认为“
无
锁
”仅仅意味着“没有互斥的并发编程”。通常,还有一个相关的误解,即编写
无
锁
代码的目的是为了获得更好的并发性能。当然,
无
锁
的正确定义实际上是关于进度保证的。
无
锁
算法保证至少有一个线程能够向前推进,而不管其他线程在做什么。 这意味着没有
锁
的算法永远不会有一个线程依赖另一个线程来继续执行的代码。例如,
无
锁
代码不能出现线程A设置标志的情况,然后线程B在等待线程A取消设
浏览 3
提问于2017-08-27
得票数 30
回答已采纳
1
回答
可变长度的
无
锁
队列
?
c++
、
c
、
queue
、
lock-free
我在C/C++中搜索了相当多的
无
锁
队列
,但是它们中的大多数必须指定最大数量的元素,包括boost::lockfree。 有人能给我一些关于可变长度、多个生产者和多个消费者
无
锁
队列
的信息吗?
浏览 2
提问于2013-08-27
得票数 1
1
回答
编年史
队列
:为多路复用生产者写入单个
队列
的推荐方法是什么?
concurrency
、
chronicle
、
chronicle-queue
让有5个生产者线程,和一个
队列
。我似乎有两个选择:首先同步5个生产者线程(如无
锁
机制,例如中断器),创建一个额外的线程,其中包含一个写入编年史
队列
的附加线程。 为什么问这个问题?我最初的印象是,写入编年史
队列
是
无
锁
的,因此应该非常快。但是github文档多次提到,有一个写
锁
可以序列化并发写入。所以,我不知道放在编年史
队列
前面的<e
浏览 3
提问于2022-04-19
得票数 1
回答已采纳
5
回答
无
锁
队列
中的内存管理
c++
、
lock-free
我们一直希望在代码中使用一个
无
锁
队列
来减少当前实现中单个生产者和使用者之间的
锁
争用。有很多
队列
实现,但我还不太清楚如何最好地管理节点的内存管理。由于我们使用的是池,因此需要向内存池添加另一个
锁
,以正确地保护它。这似乎一开始就否定了无
锁
队列
的性能优势。 谢谢。
浏览 2
提问于2011-06-23
得票数 6
回答已采纳
1
回答
Boost:阻塞直到
队列
有了另一项
c++
、
multithreading
、
boost
、
producer-consumer
我使用Boost的
无
锁
队列
作为生产者-消费者
队列
。我希望每个使用者线程在
队列
为空时阻塞,当
队列
中有更多数据时醒来,或者任何生产者终止。但是Boost似乎没有提供阻塞的pop,只提供立即返回的pop。
浏览 1
提问于2015-04-12
得票数 2
回答已采纳
2
回答
比较boost::lockfree::spsc_queue、boost::lockfree::queue、串行
队列
操作
c++
、
multithreading
、
boost
我比较了这三种情况的运行时间,它们是boost::lockfree::queue,boost::lockfree::spsc_queue,以及使用std::queue的生产者/消费者
队列
的序列码。boost::lockfree::queue产生/消费400000000个对象所花费的时间是290秒,而boost::lockfree::spsc_queue (nowait单生产者
队列
和单消费者
队列
)我想知道使用多线程
无
锁
队列
有什么意义。这只是一个演示,说明这两个
无
浏览 1
提问于2015-04-16
得票数 1
2
回答
没有链表的
无
锁
编程
c++
、
multithreading
、
linked-list
然而,我所见过的几乎所有无
锁
数据结构的例子都使用了链接列表。例如,C++并发性和多处理器编程艺术在实现
无
锁
堆栈和
队列
时都使用链接列表。在设计
无
锁
容器(如堆栈和
队列
)时,是否有更好的替代链接列表的方法?
浏览 4
提问于2016-12-08
得票数 4
1
回答
真正的
无
锁
MPMC环缓冲器?线程能够互相帮助以避免阻塞吗?
c++
、
multithreading
、
algorithm
、
lock-free
所示的代码并不是完全无
锁
的。当
队列
不为空或未满时,每当挂起写入线程时,读取器线程将返回false,从而阻止整个数据结构取得进展。 我看了一些代码,它们也有类似的问题。使用繁忙的等待,而不是
无
锁
。
浏览 14
提问于2022-04-03
得票数 2
回答已采纳
5
回答
无
锁
队列
c
、
queue
、
lock-free
typedef struct queueelem { struct queueelem} //return FALSE } 但不知道如何继续,用
队列
和去
队列
函数
浏览 3
提问于2011-05-22
得票数 3
回答已采纳
1
回答
无
锁
队列
c++
、
c++11
、
queue
、
c++14
、
lock-free
我对
无
锁
编程世界非常陌生,希望能得到一些关于这段代码的反馈。我一直在用多个生产者和消费者测试
队列
,并且没有意外的输出(目前为止)。有什么我可能错过或者应该改进的地方吗?
浏览 0
提问于2015-10-11
得票数 2
回答已采纳
1
回答
是否存在有界
无
锁
阻塞
队列
?
java
、
concurrency
LinkedBlockingQueue可以是有界的,但它使用
锁
。 ConcurrentLinkedQueue不使用
锁
,但它不是有界的。而且它不会阻塞,这使得它很难轮询。显然,我不能让一个既阻塞又
无
锁
的
队列
(等待自由或非阻塞或其他)。我不要求学术上的定义。有没有人知道一个
队列
实现,它基本上是
无
锁
的(不在热路径中使用
锁
),在空的时候阻塞(不需要忙碌等待),并且是有界的(满的时候阻塞)?堆外解决方案也是受欢迎的。我听说过LMAX Disru
浏览 0
提问于2017-09-29
得票数 3
1
回答
有
锁
队列
与
无
锁
队列
multithreading
、
c++11
、
boost
、
producer-consumer
、
lock-free
它是一个纯粹的单生产者单消费者
队列
。struct MemoryStruct { size_t size;
队列
是 boost:
浏览 0
提问于2016-12-06
得票数 0
1
回答
我可以在不读取值的情况下确定数据竞争的结果吗?
multithreading
、
lock-free
我试图更好地理解
无
锁
编程:// Thread 1x = 2// Thread 1queue.push(1) x = 2然后,这些操作可以命令如下:x =
浏览 0
提问于2018-07-23
得票数 4
回答已采纳
1
回答
售票
锁
是免费的吗?(根据某些假设)
concurrency
、
synchronization
、
terminology
我正在讨论一个票证
锁
,它看起来可能如下(在伪C语法中):我认为是这样,因为船票
锁
是公平的,因此等待的上限是O(p * c)。 我会犯错吗?我有点困惑。我一直认为锁定意味着不需要等待,因为以下语句:“不可能从一组原子寄存器构建
队列
、堆栈、优先级
队列
、set或list的
无
浏览 2
提问于2011-10-11
得票数 3
回答已采纳
3
回答
免费的标准集合和教程或文章
multithreading
、
language-agnostic
、
locking
、
thread-safety
、
lock-free
有没有人知道一个很好的资源来实现
无
锁
的普通数据类型(也就是源代码)。我在想列表,
队列
等等? 锁定实现非常容易找到,但我找不到
无
锁
算法的示例,也找不到CAS如何工作以及如何使用它来实现这些结构。
浏览 0
提问于2009-11-13
得票数 4
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
对象存储
云点播
实时音视频
活动推荐
运营活动
广告
关闭
领券