Java虚拟机对synchronized的优化
生活随笔
收集整理的這篇文章主要介紹了
Java虚拟机对synchronized的优化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
偏向鎖
輕量級鎖
重量級鎖(等待時間長)
對象頭與monitor
一個對象實例包含:對象頭、實例變量、填充數(shù)據(jù)
對象頭:加鎖的基礎(chǔ)
實例變量:
填充數(shù)據(jù):
2個字:
hashCode的作用:HashSet?
無鎖狀態(tài):沒有加鎖
偏向鎖:在對象第一次被某一線程占有的時候,是否偏向鎖置1,鎖表01,寫入線程號,當(dāng)其他的線???????? 程訪問的時候,競爭,失敗? 輕量級鎖
很多次悲第一次占有它的線程獲取次數(shù)多,成功?
CAS算法 campany and set(CAS)
無鎖狀態(tài)時間非常接近
競爭不激烈的時候適用
輕量級鎖:線程有交替適用,互斥性不是很強,CAS失敗,00
重量級鎖:強互斥,10,等待時間長
自旋鎖:競爭失敗的時候,不是馬上轉(zhuǎn)化級別,而是執(zhí)行幾次空循環(huán)5 10
鎖消除:JIT在編譯的時候吧不必要的鎖去掉
?
總結(jié)
以上是生活随笔為你收集整理的Java虚拟机对synchronized的优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: synchronized的用法
- 下一篇: Java限流策