宋寶華:關於ARM Linux原子操作的實現

競態無所不在 首先我們要理解競態(race condition)無所不在,哪怕是對一個全局變量做++的加1動作。 a=0 a++; a++這句話,會被翻譯爲多條指令: ldr     r3, [r3, #0]  adds    r2, r3, #1 str     r2, [r3, #0]  它會先讀(ldr),再修改(add),再寫(str),是一個典型的讀-修改-寫(RMW)序列。a++在硬件
相關文章
相關標籤/搜索