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