目录

1.Synchronized关键字的底层实现是什么?

2.什么是Synchronized的锁升级?

3.什么是偏向锁,轻量级锁,重量级锁呢?

4.各种锁之间的区别和联系?


1.Synchronized关键字的底层实现是什么?

从各个层面分析

1.java代码: synchronized

2.字节码的层面: monitorenter,moniterexit

3.jvm 执行过程中会自动升级 无锁--》偏向锁---》轻量级锁---》重量级锁

4.lock comxchg

2.什么是Synchronized的锁升级?

1.6之前,synchronized是一个重量级锁,1.6之后,jvm对synchronized进行了锁升级,出现了锁的状态从无锁-->偏向锁-->轻量级锁--->重量级锁这个过程。

3.什么是偏向锁,轻量级锁,重量级锁呢?

偏向锁是第一次执行synchronized的代码,会把锁的线程id放在mark word里,下一次如果是同一个线程进来,只需要先判断,mark word中的线程id是不是当前的线程id,如果是当前的线程id,直接执行代码块中的代码。

轻量级锁:当前锁状态是偏向锁,被另外的线程访问,此时偏向锁就会升级为轻量级锁,其他线程会以自旋的方式获得锁,不会阻塞。mark word存储胡中指向栈中锁记录的指针。

重量级锁:如果锁的竞争激烈,达到最大自旋次数的线程,会将轻量级锁升级为重量级锁,等待的锁会直接挂起。markword中指向互斥量的指针。

4.各种锁之间的区别和联系?

偏向锁: Mark Word 里存储锁偏向的线程 ID 标志位 01

轻量级锁:指向栈中锁记录的指针 00 锁竞争失败会自旋

重量级锁:指向互斥量的指针 11 锁竞争失败会阻塞

一图胜千言

参考

1.https://www.jianshu.com/p/eac466494477-----------cas 原理

2.https://www.jianshu.com/p/da9d051dcc3d----aqs

3.https://blog.csdn.net/u012102536/article/details/103070769--- aqs源码分析

4.https://www.cnblogs.com/jxxblogs/p/11751944.html-------线程池的状态

5.https://www.jianshu.com/p/389b58856894----- java 线程池源码分析

6.https://www.jianshu.com/p/117571856b28---- java 线程池的实现源码分析

7.https://www.jianshu.com/p/063ebba64ec4---- java 线程池原理与Executor框架

8.https://www.jianshu.com/p/36eedeb3f912-----偏向锁,轻量级锁,重量级锁详解

9.https://www.bilibili.com/video/BV1s741127Gn?from=search&seid=14128259413075469454 ------ 偏向锁,轻量级锁,重量级锁视频

10.https://blog.csdn.net/lengxiao1993/article/details/81568130---- 偏向锁,轻量级锁,重量级锁的详解

11.https://segmentfault.com/a/1190000022904663

Synchronized相关的面试题相关推荐

  1. vue 给取data值_一些Vue相关的面试题,帮助求职者提升竞争力

    Vue是一套构建用户界面的渐进式框架,具有简单易用.性能好.前后端分离等优势,是Web前端工程师工作的好帮手,也是企业选拔人才时考察的重点技能.接下来我就给大家分享一些Vue相关的面试题,帮助大家提升 ...

  2. 2022年二级建造师建设工程法规及相关知识精选试题及答案

    题库来源:优题宝公众号 2022年二级建造师建设工程法规及相关知识精选试题及答案,由优题宝公众号根据最新二级建造师建设工程法规及相关知识大纲与历年真题汇总编写,包含二级建造师建设工程法规及相关知识常考 ...

  3. 2022年桂林二级建造师机电工程施工相关法规冲刺试题及答案

    题库来源:优题宝公众号 2022年桂林二级建造师机电工程施工相关法规冲刺试题及答案,由优题宝公众号根据最新二级建造师机大纲与历年真题汇总编写,包含二级建造师机常考重点题型与知识点,有助于考生复习备考二 ...

  4. Maven相关常见面试题

    Maven相关常见面试题 更好的解答需要大家自行百度,这里主要是列出,单个问题的去搜索了解 1.你们公司使用的maven 版本 我使用的是maven3.6.3(根据你平时用的版本答就好了) 2.使用m ...

  5. java 等待几秒_Java并发编程synchronized相关面试题总结

    说说自己对于synchronized关键字的了解 synchronized关键字用于解决多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个 ...

  6. 【资源】NLP 算法工程师相关的面试题

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要4分钟 跟随小博主,每天进步一丢丢 作者 | songyingxin https://github.com/songyingxin/NLPer- ...

  7. 【渝粤教育】国家开放大学2018年春季 0599-22T工程造价管理基础理论与相关法规 参考试题

    科目编号:0599 座位号 2017-2018学年度第二学期期末考试 工程造价管理基础理论与相关法规 试题 2018年 7 月 一.单选题(本大题共10小题,每小题4分,共计40分) (★请考生务必将 ...

  8. 【渝粤教育】国家开放大学2018年春季 0599-21T工程造价管理基础理论与相关法规 参考试题

    科目编号:0599 座位号 2017-2018学年度第二学期期末考试 工程造价管理基础理论与相关法规 试题 2018年 7 月 一.单选题(本大题共10小题,每小题4分,共计40分) (★请考生务必将 ...

  9. java基础 day14数据安全,银行账户取款例子,synchronized()使用、面试题,死锁,线程安全

    数据安全 关于多线程并发环境下,数据的安全问题 为什么这个是重点?以后在开发中,我们的项目都是运行在服务器当中,而服务器已经将线程的定义,线程对象的创建,线程的启动等,都已经实现完了.这些代码我们都不 ...

最新文章

  1. 数据结构Java版之红黑树(八)
  2. AI时代,人与机器的沟通方式
  3. python学习-函数(定义、可变参、小练习(列表最小值函数))
  4. 数学建模学习笔记(一)——层次分析模型
  5. qs.js 更好的处理url参数
  6. 【redis 学习系列08】Redis小功能大用处02 Pipeline、事务与Lua
  7. pdf如何解除加密?
  8. Java 学习经验[转]
  9. 在 tornado 中异步无阻塞的执行耗时任务
  10. Web 端的测试 Selenium 用法必备
  11. excel常用快捷键
  12. 在QQ浏览器打开html,QQ浏览器显示网页打开错误的处理
  13. 最小生成树(Prim算法和Kruskal算法)
  14. 卢卡斯Lucas定理
  15. 计算机专门存储数据的单元,认识算法的数据存储单元——变量
  16. 计算机地图制图的生产流程包括,2012注册测绘师综合:计算机地图制图生产工艺...
  17. python可以自动拆分表格吗_如何利用Python一键拆分表格并进行邮件发送~
  18. *Linux学习笔记
  19. 关于numeric_limits
  20. 比前途,还是嵌入式开发比软件开发更胜一筹

热门文章

  1. Ubuntu 20.04.3 “have unmet dependencies“
  2. 声明式事务、SpringMVC详解
  3. 从0到1万字贴心讲解单体架构到分布式架构的演变(第一篇)
  4. 红米NoteX和红米NoteXpro的区别
  5. 【浅谈爬虫】一名合格的Python爬虫工程师必须具备技能—具体了解四大Python爬虫分类以及爬虫基本原理实现
  6. Python 之霍兰德人格与职业分析
  7. 《Designing and Training of A Dual CNN for Image Denoising》阅读笔记
  8. Android修行手册 - ConstraintLayout示例
  9. Vue 使用特殊字体
  10. 面向民航的航空数据链协议解析应用研究