首先那些说看过synchronized源码的基本都是大聪明,synchronized根本点不进去,想弄懂它的实现原理,我们只能通过看编译好的字节码文件

原理:

基于对象的监视器(ObjectMonitor),我们在字节码文件里面可以看到,在同步方法执行前后,有两个指令,方法前monitorenter,方法后monitorexit;

与lock对比:

1、synchronized不需要手动释放锁,lock需要在锁用完后进行unlock;
2、synchronized只能是默认的非公平锁,lock可以指定使用公平锁或者非公平锁;
3、lock提供的Condition(条件)可以指定唤醒哪些线程,而synchronized只能随机唤醒一个或者全部唤醒;

Java面试题 synchronized底层实现原理?它与lock相比有什么优缺点?相关推荐

  1. Java并发编程-synchronized底层原理

    synchronized底层原理与Monitor密切相关 1.Java对象头 以 32 位虚拟机为例 普通对象 对象的类型,如Student类型,Teacher类型等是由KlassWord来表示的,它 ...

  2. Java并发机制的底层实现原理

    Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令.本章我们将 ...

  3. 《Java并发编程的艺术》:第2章 Java并发机制的底层实现原理

    前言 Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节 码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和 CPU的指令. ...

  4. 《Java并发编程的艺术》一一第2章Java并发机制的底层实现原理

    第2章Java并发机制的底层实现原理 2.1 volatile的应用 Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行, ...

  5. java并发机制的底层实现原理(volatile,synchronized,原子操作)

    目录 volatile的应用 volatile的定义与实现原理 volatile的使用优化 synchronized的实现原理与应用 Java对象头 锁的升级与对比 偏向锁 轻量级锁 锁的优缺点对比 ...

  6. sheng的学习笔记-synchronized底层实现原理

    目录 1 基本使用 synchronized的四种用法 修饰方法 修饰一个代码块 指定要给某个对象加锁 修饰一个静态的方法 修饰一个类 小结 2 同步原理 3 同步概念 3.1 Java对象头 3.2 ...

  7. Java并发编程—Synchronized底层优化(偏向锁、轻量级锁)

    原文作者:Matrix海 子 原文地址:Java并发编程:Synchronized底层优化(偏向锁.轻量级锁) 目录 一.重量级锁 二.轻量级锁 三.偏向锁 四.其他优化 五.总结 一.重量级锁 上篇 ...

  8. Java反射自定义注解底层设计原理

    文章目录 一.反射 1. 反射概念 2. 反射机制的优缺点 3. 反射的用途 4. 反射技术的使用 5. 反射常用的Api 6. 反射执行构造函数 7. 反射执行给属性赋值 8. 反射执行调用方法 二 ...

  9. 【java并发编程艺术学习】(四)第二章 java并发机制的底层实现原理 学习记录(二) synchronized...

    章节介绍 本章节主要学习 Java SE 1.6 中为了减少获得锁 和 释放锁 时带来的性能消耗 而引入的偏向锁 和 轻量级锁,以及锁的存储结构 和 升级过程. synchronized实现同步的基础 ...

最新文章

  1. ROS调用本地摄像头数据并在rviz里显示
  2. Mariadb dockerfile测试
  3. win10引导安卓x86_GPDwin安装安卓x86折腾记
  4. 运用vs code常见错误_CBA:浙江广厦控股 VS 广东东莞大益 热门篮球竞猜分析
  5. 首师大2计算机考研分数线,2021考研分数线:首都师范大学2021年考研复试分数线...
  6. 基于FPGA实现AD7609接口
  7. 【ElasticSearch】ElasticSearch 中使用衰减函数来完美你的搜索结果
  8. CentOS 安装gnutls
  9. Ext3.4.0中EditorGridPanel可以复制文本
  10. java rcp 教程 书,Eclipse RCP Tutorial(中文教程)
  11. java并发编程-CAS算法
  12. 基于Java的图书管理系统(附源码和课件)
  13. Qt Charts示例
  14. CPU与GPU计算能力比较
  15. 电路基本原理和加法器的实现---计算机组成原理学习心得04
  16. 基于bim技术的应用软件有?哪些提高bim工作效率的revit插件
  17. Pandas 时间序列 - 实例方法与重采样
  18. AIS标准(ITU-R M.1371-5)和Python解码模块
  19. python远程连接mysql数据库_python远程连接MySQL数据库
  20. Android 手机OAT升级后应用没有更新问题解析

热门文章

  1. div 布局_CSS布局:三栏布局
  2. 计算机创建快捷方式w10,win10无法创建快捷方式,win10发送快捷方式磁盘满了
  3. D3js(四):箭头arrow
  4. 机器学习:AdaBoost算法及其实现
  5. 【C++】运算符重载 Operator Overload
  6. NOIP2007 字符串的展开
  7. Linux系统中文件^M乱码解决
  8. [LeetCode]547. Friend Circles朋友圈数量--不相邻子图问题
  9. JAVA多线程之CountDownLatch
  10. Action Service Dao三层的功能划分