结合代码理解Class文件中的Flags(2)

接《结合代码理解JVM中的Flags》着展开。

方法加同步标志后,在Class文件中会出现ACC_SYNCHRONIZED,但是它是如何运行的呢?

image-20230320193543234

翻了下虚拟的介绍,虚拟机遇到此标志时会转成monitor,而且也介绍了它的逻辑与代码块的同步还是非常相近的(暂不展开虚拟机的实现),来看下代码块的同步是怎样的。如下图中所示,synchronized代码块转换成了monitorentermonitorexit

对于方法的 flags 中的ACC_SYNCHRONIZED其实也是会被转换成相关monitor管理的。

image-20230320194602240

结合代码理解Class文件中的Flags(2)
https://blog.isnap.cn/posts/606c4d62/
作者
三岁于辛
发布于
2023年3月20日
许可协议