概述
JVM作者认为大多数情况下,共享资源并不存在多线程竞争的情况,也就是说共享资源的锁老是由同一个线程获取到,线程重入的情况非常多。因此为了减少一些不必要的CAS操作,引入了偏向锁。
偏向锁
在synchronized加载加锁-线程可重入一文的末尾提到了锁偏向的问题,如果程序中不存在对共享资源的竞争问题,那么获取锁和释放锁的CAS同步操作是可以不用做的。
偏向锁的目的正是为了在无竞争的情况下,减少线程重入引起的获得锁、释放锁带来的CAS同步开销。
偏向锁几个要点:
1、线程已经得到锁了;
2、避免线程重入带来的开销;
3、当线程与线程之间发生对共享资源的争夺,那么偏向锁就会解除;
4、竞争情况严重的话,很难保证锁一直偏向。
参考的文章
170万+

被折叠的 条评论
为什么被折叠?



