gpt4 book ai didi

无锁结构的 C++ 原子操作

转载 作者:IT老高 更新时间:2023-10-28 23:14:59 26 4
gpt4 key购买 nike

我正在使用原子(双)比较和交换指令实现无锁机制,例如cmpxchg16b

我目前正在汇编中编写它,然后将其链接。但是,我想知道是否有一种方法可以让编译器自动为我执行此操作?例如用“原子”包围代码块,让它弄清楚如何在底层处理器架构中将代码实现为原子指令(或者如果底层架构不支持,则在编译时生成错误)?

附:我知道 gcc 有一些内置函数(至少对于 CAS)

http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Atomic-Builtins.html#Atomic-Builtins

最佳答案

已经回答了here .

C++0x 标准将提供一些 atomic datatypes ,主要是使用 std::atomic<> 模板的整数和 void 类型。那篇文章提到Boehm's atomic_ops project您可以立即下载和使用。

如果没有,你不能在编译器中实现你的汇编器内联吗?我知道 MSVC 有 __asm内联汇编程序的关键字。谷歌说 yes , gcc can do it too .

关于无锁结构的 C++ 原子操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/930897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com