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