大话synchronize底层原理
生活随笔
收集整理的這篇文章主要介紹了
大话synchronize底层原理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在每個(gè)對象中mark word中LockWord指向monitor的起始地址,也就是每個(gè)對象與一個(gè)monitor相關(guān)聯(lián)。在monitor中有個(gè)Owner字段記錄著擁有鎖的線程。初始時(shí)為NULL表示當(dāng)前沒有任何線程擁有該鎖,當(dāng)線程成功擁有該鎖后保存線程唯一標(biāo)識,當(dāng)鎖被釋放時(shí)又設(shè)置為NULL。修改過程都是以CAS的方式修改。?synchronize 就有了偏向鎖,偏向鎖的適用場景為 沒有發(fā)生鎖競爭的情況下,只需要修改對象頭中Mark Word中的線程ID,只需CAS一次,優(yōu)化了輕量級鎖每次CAS倆次。
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的大话synchronize底层原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么消息队列不实现精准一次(exact
- 下一篇: epoll和select的区别