偏向锁的基本原理
前面說過,大部分情況下,鎖不僅僅不存在多線程競爭,而是總是由同一個線程多次獲得,為了讓線程獲取鎖的代價更低就引入了偏向鎖的概念。怎么理解偏向鎖呢?
當(dāng)一個線程訪問加了同步鎖的代碼塊時,會在對象頭中存儲當(dāng)前線程的ID,后續(xù)這個線程進(jìn)入和退出這段加了同步鎖的代碼塊時,不需要再次加鎖和釋放鎖。而是直接比較對象頭里面是否存儲了指向當(dāng)前線程的偏向鎖。如果相等表示偏向鎖是偏向于當(dāng)前線程的,就不需要再嘗試獲得鎖了?
?
總結(jié)
- 上一篇: synchronized锁的升级
- 下一篇: 偏向锁的获取和撤销逻辑