您的位置 首页 > 数码极客

java如何锁button不让其处理

对象头信息

Java的实例对象、数组对象在内存中的组成包括三部分:对象头Hearder、实例数据、内存填充。

对象头信息主要包括两部分:标记位(MarkWord)和对象指针(Class Pointer),其中标记位占8个字节,对象指针占4个字节。

此外,对于数组对象而言,额外有4个字节代表数组长度。

Java的对象头在对象不同情况下会有不同的表现形式,主要有三种状态:无锁状态、有锁状态、GC标记状态。其中锁状态又分为偏向锁、轻量级锁、重量级锁三类。


标记位和锁

重量级锁

synchronized 底层有一个monitor监视器,会监控持有锁的对象,加锁解锁都由JVM控制

经过javac编译后,会在同步块的前后分别形成MonitorEnter和MonitorExit这两个字节码指令,都需要一个refrence类型的参数来指明要锁定和解锁的对象。

针对重量级锁做了哪些优化?


锁膨胀

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“java如何锁button不让其处理”边界阅读