原文网址:Java多线程--synchronized之锁的升级_IT利刃出鞘的博客-CSDN博客
简介
本文介绍Java的synchronized的锁的升级过程。
锁的升级是单向的:只能从低到高升级,不会出现锁的降级。
锁的升级过程
- JVM 有偏向锁启动延迟(默认是4秒)
- 若不考虑偏向锁的启动延迟,当仅有一个线程拿锁的时候,锁对象的状态是偏向锁状态
- 当多个线程拿锁的时候,若是交替拿锁不发生竞争或者发生竞争线程自旋的次数小于某阈值,偏向锁升级成轻量级锁。
- 当自旋的次数超过某阈值,轻量级锁升级成重量级锁。
锁的类型
上边是文章的部分内容,为便于维护,全文已迁移到此网址:Java-synchronized之锁的升级 - 自学精灵