線程同步機制是一套用于協(xié)調(diào)線程間的數(shù)據(jù)訪問(Data Accecc)和活動(Activity)的機制,該機制用于保障線程安全以及實現(xiàn)這些線程的共同目標(biāo)
鎖概述
鎖(Lock)的思想:將多個線程對共享變量的并發(fā)訪問轉(zhuǎn)換為串行訪問
臨界區(qū)(Critical Section):鎖的持有線程在其獲得鎖之后和釋放鎖之前的這段時間內(nèi)所執(zhí)行的代碼
共享數(shù)據(jù)只允許在臨界區(qū)內(nèi)進行訪問癞己,臨界區(qū)一次只能被一個線程執(zhí)行
相關(guān)概念
可重入性(Reentrancy)
一個線程在持有一個鎖的時候建芙,能否再次或多次申請該鎖
鎖的粒度
一個鎖實例所保護的共享數(shù)據(jù)的數(shù)量大小
粒度粗 粒度細
鎖的適用場景
(1)check-then-ack操作
(2)read-modify-write操作
(3)多個線程對共享數(shù)據(jù)進行更新