Java核心知識 多線程併發 重量級鎖(Mutex Lock)(十六)

Java核心知識 多線程併發 重量級鎖(Mutex Lock)(十六)

Synchronized 是通過對象內部的一個叫做監視器鎖(monitor)來實現的。但是監視器鎖本質又 是依賴於底層的操作系統的 Mutex Lock 來實現的。而操作系統實現線程之間的切換這就需要從用 戶態轉換到核心態,這個成本非常高,狀態之間的轉換需要相對比較長的時間,這就是為什麼 Synchronized 效率低的原因。因此,這種依賴於操作系統 Mutex Lock 所實現的鎖我們稱之為

“重量級鎖”。JDK 中對 Synchronized 做的種種優化,其核心都是為了減少這種重量級鎖的使用。 JDK1.6 以後,為了減少獲得鎖和釋放鎖所帶來的性能消耗,提高性能,引入了“輕量級鎖”和

“偏向鎖”。


分享到:


相關文章: