說一下偏向鎖 輕量級鎖 重量級鎖?

2021-10-07 04:29:45 字數 389 閱讀 7358

1.這三種鎖是指鎖狀態,並且是針對synchronized,這三種鎖的狀態是通過物件監視器在物件頭中的字段來表明的.

2.偏向鎖是指一段同步**一直被乙個執行緒所訪問,那麼該執行緒會自動獲取鎖,降低鎖的代價.

3.輕量級鎖是指當鎖是偏向鎖的時候,被另乙個執行緒所訪問,偏向鎖就會公升級為輕量級鎖,其他執行緒會通過自旋的形式嘗試獲取鎖,不會阻塞,提高效能.

4.重量級鎖是指當鎖為輕量級的時候,另乙個執行緒雖然是自旋,但自旋不會一致持續下去,當自旋一定次數的時候,還沒有獲取到鎖,就會進入阻塞,該鎖膨脹為重量級鎖,重量級鎖會讓他**申請的執行緒進入阻塞,**效能降低.

偏向鎖 輕量級鎖 重量級鎖

首先簡單說下先偏向鎖 輕量級鎖 重量級鎖三者各自的應用場景 偏向鎖 只有乙個執行緒進入臨界區 輕量級鎖 多個執行緒交替進入臨界區 重量級鎖 多個執行緒同時進入臨界區。還要明確的是,偏向鎖 輕量級鎖都是jvm引入的鎖優化手段,目的是降低執行緒同步的開銷。比如以下的同步 塊 synchronized l...

偏向鎖 輕量級鎖 重量級鎖

synchronized關鍵字就像是汽車的自動檔,現在詳細講這個過程。一腳油門踩下去,synchronized會從無鎖公升級為偏向鎖,再公升級為輕量級鎖,最後公升級為重量級鎖,就像自動換擋一樣。那麼自旋鎖在 呢?這裡的輕量級鎖就是一種自旋鎖。初次執行到synchronized 塊的時候,鎖物件變成偏...

輕量級鎖,偏向鎖,重量級鎖

物件頭資訊 使用monitor物件來實現重量級鎖,如果使用重量級鎖,加鎖過程就需要先去關聯monitor物件,然後還需要各種判斷。asychronized關鍵字實現重量級鎖的原理 monitorenter和monitorexit就是操作monitor物件,會有效能損耗,所以引入輕量級鎖。當出現重量級...