synchronized底层加锁和释放锁的原理

embedded/2024/10/11 11:21:47/

新建Decompilation.java文件

java">public class Decompilation {private Object object = new Object();public void insert(Thread thread) {synchronized (object) {}}
}

编译

javac Decompilation.java

反编译获得字节码指令

javap -verbose Decompilation.class
 public void insert(java.lang.Thread);descriptor: (Ljava/lang/Thread;)Vflags: ACC_PUBLICCode:stack=2, locals=4, args_size=20: aload_01: getfield      #3                  // Field object:Ljava/lang/Object;4: dup5: astore_26: monitorenter               // 要获取到锁7: aload_28: monitorexit                // 释放锁9: goto          1712: astore_313: aload_214: monitorexit               // 释放锁,第二个出口。一个锁入口,两个锁出口(正常退出 + 异常退出)15: aload_316: athrow17: returnException table:from    to  target type7     9    12   any12    15    12   anyLineNumberTable:line 5: 0line 7: 7line 8: 17StackMapTable: number_of_entries = 2frame_type = 255 /* full_frame */offset_delta = 12locals = [ class Decompilation, class java/lang/Thread, class java/lang/Object ]stack = [ class java/lang/Throwable ]frame_type = 250 /* chop */offset_delta = 4

http://www.ppmy.cn/embedded/34815.html

相关文章

c#word文档:3.向Word文档中插入表格/4.读取Word文档中表格

--向Word文档中插入表格-- (1)在OfficeOperator项目的WordOperator类中定义向Word文档插入换页的函数NewPage (2)在WordOperator类中定义向Word文档插入表格的函数InsertTable using Microsoft.Office.Interop.Word;// 引入Mic…

android TV app适配遥控器思路,recycleview选中放大

背景: 当遥控器遥控盒子,app内是有一套机制,响应遥控器的操作, 需要做的就是: 1、activity中,普通view的处理: 直接监听该view的“setOnFocusChangeListener”方法,如下&#xff1…

文件加密软件排行榜前四名(2024年4大好用的加密软件推荐)

说到文件加密,想必大家都很熟悉,文件加密已经普遍应用,文件加密是一种重要的安全措施,可以确保数据的机密性、完整性和可用性,降低因数据泄露或丢失带来的风险 。 下面小编给大家分享几款常用的加密软件,…

Magic Studio Eraser API使用教程

AI橡皮擦 - 使用网址 Magic Studio的AI橡皮擦功能非常好用,能去除图片中的杂物。但是网页版只支持低分辨率下载,想要原图就得开会员,价格不菲。 不过官网其实提供了API接入方式,并且有100次的免费试用机会 API接入网站 在这里可…

OpenVoice——强大的语音克隆与生成技术

OpenVoice 是一款由 MyShell TTS 开发的令人惊叹的技术。它只需一小段参考发言者的音频片段,就能精确复制其声音,并能够生成多种语言的语音。 其主要功能包括准确的音色克隆,能够精确地克隆参考音色,并在多种语言和口音中生成语音…

【notes2】并发,IO,内存

文章目录 1.线程/协程/异步:并发对应硬件资源是cpu,线程是操作系统如何利用cpu资源的一种抽象2.并发:cpu,线程2.1 可见性:volatile2.2 原子性(读写原子):AtomicInteger/synchronized…

doris be报错:sysctl -w vm.max_map_count=2000000

报错信息 [ERROR] 2024-05-06 16:42:18 TaskLogLogger-DORIS-DorisBE:[197] - [INFO] 2024-05-06 16:42:18 TaskLogLogger-DORIS-DorisBE:[175] - execute shell command : [bash, be/bin/start_be.sh, --daemon] [INFO] 2024-05-06 16:42:18 TaskLogLogger-DORIS-DorisBE:[1…

小土堆pytorch学习

土堆视频链接 1. 两大函数 1.1 dir函数 dir函数返回一个属性列表,其中列表的元素都是字符串格式。 对于模块对象:返回模块的所有属性(变量名和方法) 对于类对象:返回这个类的属性,以及其所有父类(包括父类的父类)的属性 对于其它对象(实例对象):返回这个实例…