循序漸進(jìn)
- 了解java內(nèi)存模型
- 一般用法
- 實(shí)現(xiàn)原理
鎖的位置
執(zhí)行同步代碼塊后首先要先執(zhí)行monitorenter指令,退出的時(shí)候monitorexit指令榄檬。通過(guò)分析之后可以看出,使用Synchronized進(jìn)行同步衔统,其關(guān)鍵就是必須要對(duì)對(duì)象的監(jiān)視器monitor進(jìn)行獲取鹿榜,當(dāng)線程獲取monitor后才能繼續(xù)往下執(zhí)行,否則就只能等待锦爵。而這個(gè)獲取的過(guò)程是互斥的舱殿,即同一時(shí)刻只有一個(gè)線程能夠獲取到monitor - synchronized優(yōu)化
幾個(gè)問(wèn)題
1.Synchronized使用位置有哪些場(chǎng)景?
2.synchronized實(shí)現(xiàn)原理是什么险掀?
3.對(duì)象鎖(monitor)的機(jī)制是怎樣的沪袭?鎖的重入性是什么意思?
4.樂(lè)觀鎖樟氢、悲觀鎖 & CAS和CAS的問(wèn)題,阻塞同步冈绊、非阻塞同步
鏈接:
http://www.reibang.com/p/d53bf830fa09
https://zhuanlan.zhihu.com/p/75880892