Sync底层字节码 monitorEnter和monitorExit 对象监视器

目录

命令

同步代码块

[enter 与 exit](#enter 与 exit)

[这边是 1:2](#这边是 1:2)

如果抛出异常

同步方法

字节码

同步静态方法

字节码

为什么任何一个对象都能成为一个锁


命令

同步代码块

enter 与 exit

这边是 1:2

正常完成会解锁

保证异常 over 也会解锁

如果抛出异常

那么只有一个 enter 和 exit

同步方法

字节码

有一个标识

同步静态方法

字节码

跟同步方法相比多了一个静态的标识

为什么任何一个对象都能成为一个锁

Object 类是 Java 所有类的父类

java=c++--

每一个对象都有一个对象监视器

ObjectMonitor 中有几个关键属性

相关推荐
恋恋西风7 分钟前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
学长毕业设计8 分钟前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
Brilliantwxx10 分钟前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
东小西17 分钟前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西24 分钟前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring
许彰午31 分钟前
22-DataCenter报文序列化
java·低代码·架构·状态模式
2601_962065251 小时前
[MySQL] SQL优化之性能分析
java·sql·mysql
BizzZ_1 小时前
C++(22)——类型转换和IO流
开发语言·c++
小范同学_1 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
geovindu1 小时前
CSharp: 万年历
开发语言·后端·c#·.net