相关疑难解决方法(0)

为什么调用方法的Java字节码隐式获取和释放监视器?

我一直在阅读Java虚拟机指令集,并注意到当使用指令调用标记为同步的方法(例如invokestatic,invokevirtual等)时,由特定的字节码指令来获取接收器上的监视器宾语.类似地,从方法返回时,由方法同步时指令释放监视器的指令.这看起来很奇怪,因为有明确的monitorenter和monitorexit字节码来管理监视器.JVM是否有特殊原因以这种方式设计这些指令,而不是仅仅编译方法以包含适当的monitorenter和monitorexit指令?

java jvm synchronized

15
推荐指数
1
解决办法
1485
查看次数

标签 统计

java ×1

jvm ×1

synchronized ×1