多线程synchronized中,偏向锁-轻量级锁-重量级锁的优化机制是怎样的?

2026-06-11 14:587阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2256个文字,预计阅读时间需要10分钟。

多线程synchronized中,偏向锁-轻量级锁-重量级锁的优化机制是怎样的?

@TOC + synchronized 的锁优化机制,这也是我们编译器优化的一部分。谈及 JVM,操作系统,它的一些优化策略涉及一些细节。这些细节,其实白说了:如果不需要去实现 JVM,那么‘

@TOC


synchronized 的 锁优化的机制

这也是属于我们编译器优化,以及说 JVM ,操作系统,它们的一些优化策略所涉及到一些小细节。

这些东西,其实说白了:如果我们不需要去实现 JVM 和 编译器,就并不需要去理解。

但奈何,现在都卷到这个份上,那我们就学吧


基本特点

结合上面的锁策略, 我们就可以总结出

Synchronized 具有以下特性(只考虑 JDK 1.8):

1、 开始时是乐观锁, 如果锁冲突频繁, 就转换为悲观锁.

2、 开始是轻量级锁实现, 如果锁被持有的时间较长, 就转换成重量级锁.

3、 实现轻量级锁的时候大概率用到自旋锁策略

4、 是一种不公平锁

5、 是一种可重入锁

6、 不是读写锁

7、实现重量级锁的时候大概率会用到 挂起等待锁。


加锁工作过程

JVM 将 synchronized 锁分为 无锁、偏向锁、轻量级锁、重量级锁 状态。会根据情况,进行依次升级 。

阅读全文
标签:优化

本文共计2256个文字,预计阅读时间需要10分钟。

多线程synchronized中,偏向锁-轻量级锁-重量级锁的优化机制是怎样的?

@TOC + synchronized 的锁优化机制,这也是我们编译器优化的一部分。谈及 JVM,操作系统,它的一些优化策略涉及一些细节。这些细节,其实白说了:如果不需要去实现 JVM,那么‘

@TOC


synchronized 的 锁优化的机制

这也是属于我们编译器优化,以及说 JVM ,操作系统,它们的一些优化策略所涉及到一些小细节。

这些东西,其实说白了:如果我们不需要去实现 JVM 和 编译器,就并不需要去理解。

但奈何,现在都卷到这个份上,那我们就学吧


基本特点

结合上面的锁策略, 我们就可以总结出

Synchronized 具有以下特性(只考虑 JDK 1.8):

1、 开始时是乐观锁, 如果锁冲突频繁, 就转换为悲观锁.

2、 开始是轻量级锁实现, 如果锁被持有的时间较长, 就转换成重量级锁.

3、 实现轻量级锁的时候大概率用到自旋锁策略

4、 是一种不公平锁

5、 是一种可重入锁

6、 不是读写锁

7、实现重量级锁的时候大概率会用到 挂起等待锁。


加锁工作过程

JVM 将 synchronized 锁分为 无锁、偏向锁、轻量级锁、重量级锁 状态。会根据情况,进行依次升级 。

阅读全文
标签:优化