今天又是爱学习的一天哦~html
日期:2019-6-27 21:10:45java
public synchronized void task(Object arg){
System.out.print(Thread.currentThread() + "开始执行" + arg);
if(arg == null){
this.task(new Object());
}
System.out.print(Thread.currentThread() + "执行结束" + arg);
}
//main
new Obj().task(null);
复制代码
public void genStr(){
//JIT 优化,消除了锁
StringBuffer sb = new StringBuffer();
sb.append("a");
sb.append("b");
sb.append("c");
}
复制代码
属于运行时的 JIT 编译优化git
public class LockDemo01{
int count;
public void runTest(){
for(int i = 0; i < 10000; i++){
synchronized(this){
count++;
}
}
}
}
复制代码
www.cnblogs.com/stevenczp/p… www.cnblogs.com/stevenczp/p…github
一、 输出jit日志 (windows)在jre/bin/server 放置hsdis动态连接库 eclise、idea等工具,加上JVM参数 -server -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+LogCompilation -XX:LogFile=jit.logwindows
二、 工具安装 下载 github.com/AdoptOpenJD… 解压 经过maven运行 mvn clean compile exec:java安全
三、 配置jitwatch 页面选择 config, 配置要调试的项目src源码路径,和class编译路径 打开jit.log 点击start 四、 在分析的结果中,选中指定的类,再选择右侧的具体方法,则弹出jit编译结果app
BitFields 和 State 的对应关系。maven
CAS!CAS!CAS!CAS!CAS!CAS!CAS!工具
相关代码:src.share.vm.runtime.ObjectMonitor
优先级: 未锁定 >>> 偏向锁 >>> 轻量级 >>> 重量级