JAVA并发之synchronized详解

13 篇文章 6 订阅 ¥19.90 ¥99.00

目录

1、带着BAT大厂的面试问题去理解Synchronized

2、Synchronized的使用

2.1、对象锁

2.1.1、代码块形式:手动指定锁定对象,也可是是this,也可以是自定义的锁

2.1.2、方法锁形式:synchronized修饰普通方法,锁对象默认为this

2.2、类锁

2.2.1、synchronize修饰静态方法

2.2.2、synchronized指定锁对象为Class对象

3、Synchronized原理分析

3.1、加锁和释放锁的原理

3.2、可重入原理:加锁次数计数器

3.3、保证可见性的原理:内存模型和happens-before规则

4、JVM中锁的优化

4.1、锁的类型

4.2、自旋锁与自适应自旋锁

4.2.1、自旋锁

4.2.2、自适应自旋锁

4.3、锁消除

4.4、锁粗化

4.5、轻量级锁

4.5.1、轻量级锁加锁

4.6、偏向锁

4.6.1、偏向锁的撤销

4.7、锁的优缺点对比

5、Synchronized与Lock

5.1、synchronized的缺陷

5.2、Lock解决相应问题

6、再深入理解


1、带着BAT大厂的面试问题去理解Synchronized

  • Synchronized可以作用在哪里? 分别通过对象锁和类锁进行举例。
  • Synchronized本质上是通过什么保证线程安全的? 分三个方面回答:加锁和释放锁的原理,可重入原理,保证可见性原理。
  • Synchronized由什么样的缺陷? Java Lock是怎么弥补这些缺陷的。
  • Synchronized和Lock的对比,和选择?
  • Synchronized在使用时有何注意事项?
  • Synchronized修饰的方法在抛出异常时,会释放锁吗?
  • 多个线程等待同一个Synchronized锁的时候,JVM如何选择下一个获取锁的线程?
  • Synchronized使得同时只有一个线程可以执行,性能比较差,有什么提升的方法?
  • 我想更加灵活的控制锁的释放和获取(现在释放锁和获取锁的时机都被规定死了),怎么办?
  • 什么是锁的升级和降级? 什么是JVM里的偏斜锁、轻量级锁、重量级锁?
  • 不同的JDK中对Synchronized有何优化?

2、Synchronized的使用

在应用Sychronized关键字时需

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hao_kkkkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值