我看到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