阿里P8大??偨Y(jié)的Java鎖機(jī)制入門筆記,堪稱教科書式天花板!
前言
鎖機(jī)制無處不在,鎖機(jī)制是實(shí)現(xiàn)線程同步的基礎(chǔ),鎖機(jī)制并不是Java鎖獨(dú)有的,其他各種計(jì)算機(jī)語言中也有著鎖機(jī)制相關(guān)的實(shí)現(xiàn),數(shù)據(jù)庫中也有鎖的相關(guān)內(nèi)容。這篇文章就是從Java入手,深入學(xué)習(xí)、理解Java中的鎖機(jī)制,提升Java并發(fā)編程能力。
1、樂觀鎖

樂觀鎖是一種樂觀思想,假定當(dāng)前環(huán)境是讀多寫少,遇到并發(fā)寫的概率比較低,讀數(shù)據(jù)時(shí)認(rèn)為別的線程不會(huì)正在進(jìn)行修改(所以沒有上鎖)。寫數(shù)據(jù)時(shí),判斷當(dāng)前 與期望值是否相同,如果相同則進(jìn)行更新(更新期間加鎖,保證是原子性的)。
Java 中的樂觀鎖: CAS,比較并替換,比較當(dāng)前值(主內(nèi)存中的值),與預(yù)期值(當(dāng)前線程中的值,主內(nèi)存中值的一份拷貝)是否一樣,一樣則更新,否則繼續(xù)進(jìn)行 CAS 操作。
如上圖所示,可以同時(shí)進(jìn)行讀操作,讀的時(shí)候其他線程不能進(jìn)行寫操作。
2、悲觀鎖

3、自旋鎖

4、可重入鎖(遞歸鎖)

5、讀寫鎖

6、公平鎖

7、非公平鎖

8、共享鎖

9、獨(dú)占鎖

10、重量級(jí)鎖

11、輕量級(jí)鎖

12、偏向鎖

13、分段鎖

14、互斥鎖

15、同步鎖

16、死鎖

17、鎖粗化

18、鎖消除

19、synchronized

20、Lock和synchronized的區(qū)別

21、ReentrantLock 和synchronized的區(qū)別

Java鎖機(jī)制筆記(附圖解+思路分析)
獲取方式↓↓↓
添加VX備注【612】即可免費(fèi)獲取
喜歡小編的文章可以點(diǎn)點(diǎn)關(guān)注!小編不定期的分享最新Java筆記和面試真題
【JAVA面試題專欄】
1、2022年Java后端面試手冊(cè),助力金三銀四,吃透25個(gè)技術(shù)棧!
2、2022年金三銀四,Java后端開發(fā)最全面試攻略,程序員求職必看!
