File tree Expand file tree Collapse file tree 1 file changed +3
-3
lines changed
Expand file tree Collapse file tree 1 file changed +3
-3
lines changed Original file line number Diff line number Diff line change @@ -461,13 +461,13 @@ public class SynchronizedDemo2 {
461461
462462🧗🏻 进阶一下:学有余力的小伙伴可以抽时间详细研究一下对象监视器 ` monitor ` 。
463463
464- ### JDK1.6 之后的 synchronized 底层做了哪些优化?
464+ ### JDK1.6 之后的 synchronized 底层做了哪些优化?锁升级原理了解吗?
465465
466- JDK1.6 对锁的实现引入了大量的优化,如偏向锁、轻量级锁、自旋锁、 适应性自旋锁、锁消除、锁粗化等技术来减少锁操作的开销 。
466+ 在 Java 6 之后, ` synchronized ` 引入了大量的优化如自旋锁、 适应性自旋锁、锁消除、锁粗化、偏向锁、轻量级锁等技术来减少锁操作的开销,这些优化让 ` synchronized ` 锁的效率提升了很多(JDK18 中,偏向锁已经被彻底废弃,前面已经提到过了) 。
467467
468468锁主要存在四种状态,依次是:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态,他们会随着竞争的激烈而逐渐升级。注意锁可以升级不可降级,这种策略是为了提高获得锁和释放锁的效率。
469469
470- 关于这几种优化的详细信息可以查看下面这篇文章: [ Java6 及以上版本对 synchronized 的优化 ] ( https://www.cnblogs.com/wuqinglong /p/9945618 .html ) 。
470+ ` synchronized ` 锁升级是一个比较复杂的过程,面试也很少问到,如果你想要详细了解的话,可以看看这篇文章: [ 浅析synchronized锁升级的原理与实现 ] ( https://www.cnblogs.com/star95 /p/17542850 .html ) 。
471471
472472### synchronized 和 volatile 有什么区别?
473473
You can’t perform that action at this time.
0 commit comments