我一直在读这篇关于原子操作的文章,它提到了32位整数赋值在x86上是原子的,只要该变量是自然对齐的.
为什么自然对齐确保原子性?
c c++ concurrency x86 atomic
在Intel的文档称
该指令可以与LOCK前缀一起使用,以允许指令以原子方式执行.
LOCK
我的问题是
可以CMPXCHG用内存地址操作吗?从文档看来似乎没有,但任何人都可以确认只能在寄存器中使用实际的VALUE,而不是内存地址吗?
CMPXCHG
如果CMPXCHG不是原子级和高级语言级CAS必须通过LOCK CMPXCHG(带LOCK前缀)来实现,那么引入这样一条指令的目的是什么?
LOCK CMPXCHG
concurrency x86 compare-and-swap
concurrency ×2
x86 ×2
atomic ×1
c ×1
c++ ×1
compare-and-swap ×1