synchronized的可重入怎么实现的
生活随笔
收集整理的這篇文章主要介紹了
synchronized的可重入怎么实现的
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
● 請說明一下synchronized的可重入怎么實(shí)現(xiàn)。
考察點(diǎn):鎖
參考回答:
每個鎖關(guān)聯(lián)一個線程持有者和一個計數(shù)器。當(dāng)計數(shù)器為0時表示該鎖沒有被任何線程持有,那么任何線程都都可能獲得該鎖而調(diào)用相應(yīng)方法。當(dāng)一個線程請求成功后,JVM會記下持有鎖的線程,并將計數(shù)器計為1。此時其他線程請求該鎖,則必須等待。而該持有鎖的線程如果再次請求這個鎖,就可以再次拿到這個鎖,同時計數(shù)器會遞增。當(dāng)線程退出一個synchronized方法/塊時,計數(shù)器會遞減,如果計數(shù)器為0則釋放該鎖。
總結(jié)
以上是生活随笔為你收集整理的synchronized的可重入怎么实现的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 锁和同步的区别
- 下一篇: 非公平锁和公平锁在reetrantloc