【并发】并发锁机制-深入理解synchronized(二)

本文深入探讨了Java中的`synchronized`关键字,讲解了其高级篇的底层原理,包括synchronized的字节码指令序列、Monitor(管程/监视器)的概念与实现、对象内存布局以及使用JOL工具查看内存布局。文章介绍了Monitor在并发控制中的作用,以及wait、notify、notifyAll的正确使用,同时讨论了synchronized的优化技术,如锁粗化、锁消除、轻量级锁、偏向锁等。
摘要由CSDN通过智能技术生成

【并发】并发锁机制-深入理解synchronized(二)

synchronized 高级篇(底层原理)

一、查看synchronized的字节码指令序列

同步方法

同步代码块 

二、Monitor(管程/监视器)

MESA模型

wait()的正确使用姿势

notify() 和 notifyAll() 分别何时使用

关于 wait、notify、notifyAll的问题详解

Java语言的内置管程synchronized

Monitor机制在Java中的实现

图解Java中的Monitor机制

【思考】synchronized加锁加在对象上,锁对象是如何记录锁状态的? 

三、对象的内存布局

【了解】什么是对象头?

【问】new Object() 在对象中占用几个字节???

四、使用JOL工具查看内存布局

导pom依赖

示例代码 

运行结果 

下一节——synchronized底层锁的优化解析


【并发】并发锁机制-深入理解synchronized(二)

synchronized 高级篇(底层原理)

synchronized是JVM内置锁,基于Monitor机制实现。

这个Monitor就是管程的意思,它可以控制线程,让其陷入等待,或者将其唤醒

synchronized 依赖底层操作系统的互斥原语Mutex(互斥量),它是一个重量级锁,性能较低。

因为,有使用到操作系统底层的原语Mutex,我们只能通过系统调用来使用它!所以,CPU要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

金鳞踏雨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值