鎖的作用
保障原子性
互斥,一個鎖一次只能被一個線程持有,保證了臨界區(qū)代碼一次只能被一個線程執(zhí)行,這使得臨界區(qū)代碼所執(zhí)行的代碼具有不可分割的特性藐俺,即保障了原子性
保障可見性
獲取鎖時刷新處理器緩存
釋放鎖時沖刷處理器緩存
保障有序性
注意:臨界區(qū)內(nèi)的內(nèi)存操作依舊存在重排序
互斥,一個鎖一次只能被一個線程持有,保證了臨界區(qū)代碼一次只能被一個線程執(zhí)行,這使得臨界區(qū)代碼所執(zhí)行的代碼具有不可分割的特性藐俺,即保障了原子性
獲取鎖時刷新處理器緩存
釋放鎖時沖刷處理器緩存
注意:臨界區(qū)內(nèi)的內(nèi)存操作依舊存在重排序