爱码网专注于资源免费下载

Oracle JRockit The Definitive Guide PDF 下载

Oracle JRockit The Definitive Guide PDF 下载-第1张图片 此部分为隐藏内容,请输入验证码后查看
验证码:


扫描右侧图片或微信搜索 “ Java技术分享屋 ” ,回复 “ 验证码 ” ,获取验证密码。
本资料仅供读者预览及学习交流使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!

一.资料图片

Oracle JRockit The Definitive Guide PDF 下载-第2张图片

二.资料简介

这小节提到Java字节码指令集里有monitorenter与monitorexit两条指令用于实现同步的功能。但这俩字节码主要用来实现synchronized块;synchronized方法却并没直接用这两条指令,而是在方法的元数据上记录它有ACC_SYNCHRONIZED属性。

JRockit internally translates all methods with an implicit monitor object into methods with an explicit one, similar to what is shown in the second part of example, in order to avoid the special case with the synchronized flag.引自 Threads and Synchronization - The Java bytecode implementation也就是说JRockit会在类加载的时候把synchronized方法改写为synchronized块的那种形式,使用monitorenter与monitorexit来显式标记出synchronized块的monitor对象和范围。这样,它的JIT编译器就不需要对带有ACC_SYNCHRONIZED属性的方法做特殊处理,因为都变成统一的字节码形式。

顺带一提,HotSpot VM并没有做这种字节码改写,在解释器和JIT编译器里都会检查方法是否带有ACC_SYNCHRONIZED属性并做相应的特殊处理。


本文链接:https://www.icode1024.com/database/434.html

网友评论