摘要

Lock在硬件層面依賴CPU指令,完全由Java代碼完成,底層利用LockSupport類和Unsafe類進(jìn)行操作;

雖然鎖有很多實(shí)現(xiàn),但是都依賴AbstractQueuedSynchronizer類,我們用ReentrantLock進(jìn)行講解;

ReentrantLock調(diào)用過程

ReentrantLock類的API調(diào)用都委托給一個(gè)內(nèi)部類 Sync ,而該類繼承了 AbstractQueuedSynchronizer類;

public class ReentrantLock implements Lock, java.io.Serializable {
    ......    abstract static class Sync extends AbstractQueuedSynchronizer {
......

而Sync又分為兩個(gè)子類:公平鎖和非公平鎖,默認(rèn)為非公平鎖

 /** * Sync object for non-fair locks 

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式