簡述
ReentrantLock 是一個可重入的互斥(/獨占)鎖,又稱為“獨占鎖”。
ReentrantLock通過自定義隊列同步器(AQS-AbstractQueuedSychronized,是實現(xiàn)鎖的關(guān)鍵)來實現(xiàn)鎖的獲取與釋放。
其可以完全替代 synchronized 關(guān)鍵字。JDK 5.0 早期版本,其性能遠好于 synchronized,但 JDK 6.0 開始,JDK 對 synchronized 做了大量的優(yōu)化,使得兩者差距并不大。
“獨占”,就是在同一時刻只能有一個線程獲取到鎖,而其它獲取鎖的線程只能處于同步隊列中等待,只有獲取鎖的線程釋放了鎖,后繼的線程才能夠獲取鎖。
“可重入”,就是支持重進入的鎖,它表示該鎖能夠支持一個線程對資源的重復(fù)加鎖。