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