深入浅出理解锁之—— AbstractQueuedSynchronizer
生活随笔
收集整理的這篇文章主要介紹了
深入浅出理解锁之—— AbstractQueuedSynchronizer
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
深入淺出理解鎖之—— AbstractQueuedSynchronizer
在Java中,多線程的情況下需要鎖來保證數(shù)據(jù)的安全。
鎖一般分為兩類:sychronized 和 Lock
- sychronized利用的是指令級(jí)別的monitor-enter 和 monitor-exit。
- Lock 使用的則是代碼級(jí)別實(shí)現(xiàn)的。在Doug Lea大神的操刀下利用CAS + 自旋 + volatile變量實(shí)現(xiàn)。
而在實(shí)現(xiàn)之后,并且抽象出了一個(gè)實(shí)現(xiàn)鎖的基礎(chǔ)類AbstractQueuedSynchronizer,通過這個(gè)類可以快速的實(shí)現(xiàn)符合自己要求的鎖。
本篇博客是在學(xué)習(xí)了AQS的代碼之后,由淺入深的從最基礎(chǔ)的知識(shí)一直到AQS的深入理解。
限于水平有限,如果有寫的不對(duì)的地方還望各位多多指教
一,基礎(chǔ)知識(shí)——LockSupport
AQS理解之一,基礎(chǔ)知識(shí)——LockSupport
二,自己設(shè)計(jì)一個(gè)鎖
AQS理解之二,自己設(shè)計(jì)一個(gè)鎖
三,由剛才寫的鎖轉(zhuǎn)變成一個(gè)公平鎖
AQS理解之三,由剛才寫的鎖轉(zhuǎn)變成一個(gè)公平鎖
四,看看我們寫的和ReentrantLock的公平不公平鎖的區(qū)別
AQS理解之四,看看我們寫的和 ReentrantLock 的公平不公平鎖的區(qū)別
五,看看AQS的代碼實(shí)現(xiàn)
AQS理解之五—并發(fā)編程中AQS的理解
六,AQS的其他實(shí)現(xiàn)類
AQS理解之六,AQS的其他實(shí)現(xiàn)類
七,AQS的條件隊(duì)列
AQS理解之七——AQS中的條件隊(duì)列
總結(jié)
以上是生活随笔為你收集整理的深入浅出理解锁之—— AbstractQueuedSynchronizer的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java内存模型与happens-bef
- 下一篇: AQS理解之一,基础知识——LockSu