结合代码理解Class文件中的Flags(2)
接《结合代码理解JVM中的Flags》着展开。
方法加同步标志后,在Class文件中会出现ACC_SYNCHRONIZED
,但是它是如何运行的呢?

翻了下虚拟的介绍,虚拟机遇到此标志时会转成monitor
,而且也介绍了它的逻辑与代码块的同步还是非常相近的(暂不展开虚拟机的实现),来看下代码块的同步是怎样的。如下图中所示,synchronized
代码块转换成了monitorenter
和monitorexit
。
对于方法的 flags
中的ACC_SYNCHRONIZED
其实也是会被转换成相关monitor
管理的。

结合代码理解Class文件中的Flags(2)
https://blog.isnap.cn/posts/606c4d62/