我看到Qt的源一些x86汇编:“锁”指令在x86汇编中意味着什么?
q_atomic_increment:
movl 4(%esp), %ecx
lock
incl (%ecx)
mov $0,%eax
setne %al
ret
.align 4,0x90
.type q_atomic_increment,@function
.size q_atomic_increment,.-q_atomic_increment
从谷歌搜索,我知道
lock
指令将导致CPU锁定总线,但是当CPU释放总线,我不知道吗?关于整个上面的代码,我不明白这段代码如何实现
Add
?
请参阅http://stackoverflow.com/a/3339380/856777 – Lucian 2012-01-17 07:37:58
相关:我的答案[num num可以原子为'int num'?](https://stackoverflow.com/questions/39393850/can -num-be-atomic-for-int-num)解释了x86上的原子性,以及'lock'前缀的作用,以及没有它的情况。 – 2017-09-13 03:47:09